回答受付が終了しました

Excel 空白ではない空白 を削除する方法 関数の結果が ""の場合の偽の空白を削除したいです。

Excel | Visual Basic206閲覧xmlns="http://www.w3.org/2000/svg">100

回答(2件)

0

数式の結果が空白になる数式を削除し、セルをブランクにします。 数式の結果でなくて空白になっているセル(空白の文字列など)は除きます。 マクロ終了時にブランクとなっているセル(マクロがブランクにしたセル以外にブランクだったセルも含む)を選択します。 なお、ブランクになったセル以外には数式が残っています。 数式が不要なら、 SearchArea.SpecialCells(xlCellTypeBlanks).Select の次にでも、値貼付けの処理を加えてください。 Sub sample() Dim TargetVal As String Dim FoundCell As Range, SearchArea As Range, Target As Range Dim Addr As String TargetVal = "" Worksheets("シート1").Activate Set SearchArea = Range("C5:AF42") Set FoundCell = SearchArea.Find(what:=TargetVal, LookIn:=xlValues, _ LookAt:=xlPart, MatchCase:=False, MatchByte:=False) If FoundCell Is Nothing Then Exit Sub If FoundCell.HasFormula = False Then Do DoEvents Set FoundCell = SearchArea.FindNext(After:=FoundCell) Loop Until FoundCell.Address = SearchArea.Resize(1, 1).Address End If If FoundCell.HasFormula = False Then MsgBox "数式の結果が空白になるセルは見つかりませんでした。" Exit Sub End If Application.ScreenUpdating = False Addr = FoundCell.Address Set Target = FoundCell Do DoEvents Set FoundCell = SearchArea.FindNext(After:=FoundCell) If FoundCell Is Nothing Then Exit Do If FoundCell.HasFormula Then Set Target = Union(Target, FoundCell) End If Loop Until FoundCell.Address = SearchArea.Resize(1, 1).Address Target.ClearContents SearchArea.SpecialCells(xlCellTypeBlanks).Select Application.ScreenUpdating = True Set Target = Nothing Set FoundCell = Nothing Set SearchArea = Nothing End Sub

0

そのまま完了というより、区切り位置は1列ずつしか実行できないので、C列のみ実行されているということです。 掲示されたコードを修正してみましたので、下記を試してみてください。 Sub Macro1() Dim i As Long Sheets("シート1").Range("C5:AF42").Copy Range("C5").PasteSpecial Paste:=xlPasteValues For i = 3 To Cells(5, Columns.Count).End(xlToLeft).Column Columns(i).TextToColumns Destination:=Cells(1, i), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, Other:=True, TrailingMinusNumbers:=True Next ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Select End Sub