「vba if 文字列 判定」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスが時折あることに気づきました。
VBA(Visual Basic for Applications)で、データが文字列かどうかの判定を行う方法を探している方による検索でしょうか。
文字列かを判定するサンプルマクロ
参考になりそうな、サンプルマクロをご紹介しておきます。
以下のマクロを実行すると、アクティブセルが文字列だったときに「文字列です。」、文字列でなければ、「文字列ではありません。」というメッセージが表示されます。
If VarType(ActiveCell.Value) = vbString Then
MsgBox "文字列です。"
Else
MsgBox "文字列ではありません。"
End If
End Sub
VarType関数を使って、アクティブの値が文字列かどうかを判定している、
If VarType(ActiveCell.Value) = vbString Then
簡単なマクロです。
VarType関数とは
VarType関数は、引数に指定されたデータの型を、VbVarType列挙で定義された定数で返してくる関数です。
VbVarType列挙には下図のような定数が定義されていて、
VarType関数は、文字列だったときにvbString(実際の値は8)を返してきます。
VarType関数による判定時の特徴
VarType関数は、データの型をしっかり調べてくれます。
文字列として入力された数字は、数値ではなく、文字列と判定してくれます。
例えば、「'123」のように「'」(シングルクォート)を入力してから数字を入力した場合は、vbStringを返すということです。
[セルの書式設定]ダイアログ-[表示形式]タブの[分類]欄で「文字列」を指定して、「123」のような数字を入力したときもvbStringを返してくれます。
最終更新日時:2020-06-09 18:06
Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAで文字列かどうかを判定する-VarType関数