【ExcelVBA】数式が入っていないセルを見つける方法

ExcelVBA

Excelで数式が設定されている場合、誰かが間違って数式を消しているかもしれません。

今回は数式が入っていないセルを見つけてくれるVBAのプログラムをご紹介します。

ではいってみましょう。

手順① プログラムを貼り付ける画面を表示

まずはこちらの記事の手順を実行して、プログラムを貼り付ける画面を表示します。

【ExcelVBA】プログラミングする方法
Excelには業務効率化のための強力プログラミング言語が搭載されています。この記事ではそのプログラミング言語を使用するための方法を分かりやすく丁寧にご紹介します。

手順② プログラムのコピー

次にこのプログラムをコピーします。

解説

‘ 最終行を取得する
lastrow = Cells(Rows.Count, 1).End(xlUp).Row

‘ 最終列を取得する
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column

まずはデータが入っているセルの最終行と最終列を取得しています。

Cells(Rows.Count, 1).End(xlUp).Row はExcelシートの一番下の行(Rows.Count = 1,048,576行目)からCtrl + 上キーを押した状態( End(xlUp) )の行番号( .Row )という意味です。

lastCol = Cells(1, Columns.Count).End(xlToLeft).ColumnはExcelシートの一番右の行(Columns.Count = XDF列目)からCtrl + 左キーを押した状態( End(xlToLeft) )の列番号( .Column )という意味です。

‘ 行方向の繰り返し
For i = 1 To lastrow
‘ 列方向の繰り返し
For j = 1 To lastCol
    ここに処理を書く
Next
Next

これは行方向に1行から最終行、列方向に1列目から最終列までをループするという意味です。

これは実際の動作を確認しましょう。

i = 1 の時、j = 1 ~ 最終列

i = 2 の時、j = 1 ~ 最終列

という順番で実行されていることがわかります。

これは、次の順番でセルをひとつひとつ調べていくイメージです。

‘ 数式が空白の場合
If Cells(i, j).Formula = “” Then
‘ メッセージを表示
MsgBox Cells(i, j).Address & “の数式が空白です。”
End If

If Cells(i, j).Formula = “” Then ではセルの数式が空白かどうかを判定しています。

セルの値は Cells(i, j).Value で取得できますが、数式の場合は Formula で取得します。

MsgBox Cells(i, j).Address & “の数式が空白です。” では数式が空白のセル位置をメッセージで表示しています。

実行結果

セルG6の数式が空白になっていますので、メッセージでG6の数式が空白ですと知らせてくれます。

おわりに

いかがだったでしょうか。

今回は数式が空白の場所を知らせてくれるプログラムをご紹介しました。

VBAを使用せずに調べるのは少しめんどくさそうでしたので、このプログラムは役に立つかなと思い、ご紹介しました。

今後もこのようなお役に立ちそうなプログラムをご紹介していきますので、よろしくお願いいたします。

コメント

タイトルとURLをコピーしました