- ベストアンサー
数字と数字の間の空白セルを求めたい
合計値(A2) B2 C2 空白 E2 空白 空白 この場合は空白=1個 合計値(A2) 空白 C2 空白 空白 F2 空白 この場合は空白=2個 数字と数字の間の空白セルを求めたい。できればVBAでお願いします。複数行あります。 COUNTBLANKでとも考えましたが検索範囲が決まってはいるものの,全ての空白を求めるためダメでした。よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
これ、【数字と数字の間の空白】って【一行の中には一ヵ所だけ】って考えてもいいの? 以下のような感じではいかがでしょうか。 ------------------------ Dim row_x As Integer, column_x As Integer, column_blank As Integer, blank_num As Integer, blank_tmp As Integer Dim row_start As Integer, column_start As Integer, row_end As Integer, column_end As Integer '空白をカウントすべき範囲の指定 row_start = 2 '上端は2行目とした場合 column_start = 2 '左端はBとした場合 row_end = 10 '最終行は10行目とした場合 column_end = 7 '右端はGとした場合 For row_x = row_start To row_end blank_num = 0 '行変わるごとに空白用の変数初期化 blank_tmp = 0 For column_x = column_start To column_end - 1 'ここから行ごとの処理 If Cells(row_x, column_x).Value <> "" And Cells(row_x, column_x + 1).Value = "" Then '文字がありその右が空白なら、空白カウント開始 For column_blank = column_x + 1 To column_end If Cells(row_x, column_blank) = "" Then blank_tmp = blank_tmp + 1 '空白ならカウントする、但し仮。 Else blank_num = blank_tmp '空白じゃないセルが出たらそこで確定し、カウント終了 Exit For End If Next column_blank End If If blank_num <> 0 Then Exit For '空白セルの個数が確定してたらそれより右はもう調べない End If Next column_x Cells(row_x, column_end + 2).Value = blank_num '右端のもう2つ右に空白個数を書き込む Next row_x ------------------------
お礼
おはようございます。早速の回答ありがとうございました。 私がやりたこと全て完璧でした。また,解説も記載していただましたのでとても感謝しています。これからもよろしくお願いいたします。