• ベストアンサー

数字と数字の間の空白セルを求めたい

合計値(A2) B2  C2   空白  E2 空白 空白    この場合は空白=1個 合計値(A2) 空白 C2  空白  空白  F2   空白    この場合は空白=2個 数字と数字の間の空白セルを求めたい。できればVBAでお願いします。複数行あります。 COUNTBLANKでとも考えましたが検索範囲が決まってはいるものの,全ての空白を求めるためダメでした。よろしくお願いいたします。

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

  • ベストアンサー
  • suo2k
  • ベストアンサー率44% (183/408)
回答No.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 ------------------------

mino33mino
質問者

お礼

おはようございます。早速の回答ありがとうございました。 私がやりたこと全て完璧でした。また,解説も記載していただましたのでとても感謝しています。これからもよろしくお願いいたします。

その他の回答 (2)

  • DN7
  • ベストアンサー率30% (23/76)
回答No.2

No.1です。 すみません、質問の意図を早とちりしてしまいました。 これだと、すべての空白がカウントされるので、ダメなんですよね。

  • DN7
  • ベストアンサー率30% (23/76)
回答No.1

空白でないセルを勘定すれば良いのではないでしょうか? この場合だと 7-counta(b2:g2) 。

関連するQ&A