見出し画像

[VBA]引数に与えられた(行,列)の値が空白であればTrueを返す関数[ISBLANK]

Exceのワークシート関数ISBLANKのVBAバージョン。
引数に与えらた ( 行,列 )の値が空白であればTrueを返し、
空白でなければFlaseを返す関数です。


Function IsBlank(targetRow As Long, targetCol As Long) As Boolean
    
    If Cells(targetRow, targetCol) = "" Then
      IsBlank = True
    Else
        IsBlank = False
    End If

End Function


VBAにはExcelのISBLANKと同じような関数は、用意されていない(?)みたいなので作りました。

コピペして、こんな感じで呼び出します。

Sub Example()

    If IsBlank(1, 1) = True Then
         MsgBox "空白です。"
    ElseIf IsBlank(1, 1) = False Then
        MsgBox "空白ではありません。"
    End If
    
End Sub

以上です。

[ 雑記 ]

この「行と列を引数にして呼び出す」というのが肝心なんだよね。
似たようなIsEmpty関数というのは標準で用意はされていて、

If IsEmpty(Range("A1").Value) = True Then
      MsgBox "Cell A1 is empty"
   End If

こんな感じで使える、
通常は、その変数が初期化されているかどうかを調べる関数らしい。

今回のISBLANKみたいなのは標準で用意してくれてもいいのにね。
嫌がらずにアップデートしてくれよMicrosoftさん。


[ 参考記事 ]

Goole検索結果
「Microsoft vba how to use Isblank」
VBAでワークシートのセルが空かどうかをテストしたい場合、ISBLANKというワークシート関数は使えません。VBAでは、ISEMPTY関数を使用する必要があります。この例では、セルA1が空であるかどうかをテストします。セルA1が空の場合、「セルA1が空です」というメッセージが表示されます。
DeepL翻訳 - 引用元 TechOnTheNet

Microsoft 公式リファレンス
https://learn.microsoft.com/ja-jp/dax/isblank-function-dax

いいなと思ったら応援しよう!