• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBA 条件による空白挿入)

Excel VBA 条件による空白挿入

このQ&Aのポイント
  • Excel2003を使って、列FGHが空白の行について、列ABCに空白を挿入したい場合のVBA自動化処理について教えてください。
  • 数万行のデータがある場合でも、Excel VBAを使用して空白の行に空白を挿入する方法を知りたいです。
  • Excel VBAを使用して、特定の条件を満たす行に対して空白を挿入する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

▼VBAコードの登録方法 (1)Alt+F11でVBEを開き、挿入→標準モジュールを挿入 (2)最下のVBAコードを貼り付け (3)右上の×またはAlt+F11でVBEを終了 ▼使用方法 対象の範囲を選択(ご提示のデータではA1:H5をセル選択)した状態で Alt+F8または表示→マクロから「右詰」を選択して実行してください ■VBAコード Sub 右詰() Dim i As Long Dim j As Long Dim word As String Dim myRng As Variant Dim otRng As Variant Dim cnt As Long Dim n As Integer Application.ScreenUpdating = False For i = 1 To Selection.Rows.Count   word = ""   myRng = Range(Selection.Cells(i, 1), Selection.Cells(i, Selection.Columns.Count))   For j = 1 To UBound(myRng, 2)     If Len(myRng(1, j)) > 0 Then       word = word & "\t" & myRng(1, j)     End If   Next j   otRng = Split(word, "\t")   cnt = Selection.Columns.Count   For j = UBound(otRng) To 1 Step -1     Selection.Cells(i, cnt) = otRng(j)     cnt = cnt - 1   Next j   If cnt > 0 Then     Range(Selection.Cells(i, 1), Selection.Cells(i, cnt)).ClearContents   End If   n = Int(i * 100 / Selection.Rows.Count)   If n Mod 2 = 0 Then     Application.StatusBar = n & "% 完了"     DoEvents   End If Next i Application.ScreenUpdating = True Application.StatusBar = False End Sub

khrkzm
質問者

お礼

イメージどおりに動きました。ありがとうございました!

関連するQ&A