- ベストアンサー
Excel VBA 条件による空白挿入
- Excel2003を使って、列FGHが空白の行について、列ABCに空白を挿入したい場合のVBA自動化処理について教えてください。
- 数万行のデータがある場合でも、Excel VBAを使用して空白の行に空白を挿入する方法を知りたいです。
- Excel VBAを使用して、特定の条件を満たす行に対して空白を挿入する方法について教えてください。
- みんなの回答 (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
お礼
イメージどおりに動きました。ありがとうございました!