【ExcelVBA入門】文字列・数値を判定するためのTypeNameの使い方とは

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。

皆さんは、VBAで変数の型を調べる方法を知っていますか?

TypeName関数を使えば、とても簡単に変数の型をしらべることができます。

そこで今回は、

・TypeName関数の使い方

といった基礎的なことから、

・サンプルコードを使った具体的な使い方

・合わせて覚えると便利なIsNumeric関数とは

・VarType関数を使った型確認方法とは

といった応用的な方法まで、徹底的に解説します!

TypeName関数の使い方

はじめに、TypeName関数の使い方について解説します。

TypeName関数は以下のように書くことで、簡単に型を調べることができます。

TypeName(値)

結果はInteger、Double、Longなど結果に型名が直接返ってきます。

何の型か直感的にわかりやすいので、とても便利な関数ですね。

TypeName関数を使ったサンプルコード

次にサンプルコードをもとに、具体的な使い方を紹介します。

Sub Test()
  Dim intNo As Integer
  Dim strMessage As String
  Dim checkNo_Result As String       '実行結果確認用 No
  Dim checkMessage_Result As String  '実行結果確認用 Message
  
  '初期値設定
  intNo = 1
  strMessage = "こんにちわ"
  
  'VarType関数実行
  checkNo_Result = TypeName(intNo)
  checkMessage_Result = TypeName(strMessage)
  
  '結果確認
  MsgBox "【intNo】をTypeNameで変換した結果:" & checkNo_Result & vbCrLf & _
         "【strMessage】をTypeNameで変換した結果:" & checkMessage_Result
  
End Sub

数値、文字列をそれぞれTypeName関数で型確認し、結果をメッセージで表示しているサンプルです。

数値はInteger、文字列はStringが返ってきているのでわかりやすいですね。

このように、TypeName関数を使えば簡単に型を確認できるのでおすすめです!

ちなみに、サンプルで書いているMsgBox関数については以下で解説しているので、気になる方は見てみてくださいね!

【Excel VBA】MsgBoxでメッセージボックスを表示する方法
更新日 : 2019年4月25日

合わせて覚えたい数値判定をチェックする方法とは

ここまで型を確認する方法としてVarType関数の使い方を説明していきましたが、値の数値判定をしたい場合はIsNumeric関数を使うのもおすすめです!

IsNumeric関数は英語のつづりの通り、数値判定していることがわかりやすいのでコードが見やすくなります。

以下で詳しく解説しているので、気になる方は見てみてくださいね!

【ExcelVBA入門】VBAで数値判定するためのIsNumeric関数の使い方とは
更新日 : 2019年9月1日

補足:結果を数値で返して判定する方法とは

TypeName関数は結果が文字列で返ってくるため、IF文で分岐させるときに以下のようにつづりを間違えてしまう可能性があります。

IF TypeName(“こんにちわ”) = “Strang” Then
  '文字列だった場合の処理
Else
  '文字列以外だった場合の処理
End if

そのため、結果を数値で返す方法を合わせて覚えておくと便利です。

VarType関数を使えば、型を確認した結果を数値で返すことができるので、気になる方は見てみてくださいね!

【ExcelVBA】VarType関数で変数の型を調べる方法
更新日 : 2019年6月11日

まとめ

今回は、VBAで型を確認するためのTypeName関数の使い方について解説しました!

型確認方法を知っておくと、入力チェック処理が簡単に作れるようになるので、とてもおすすめです。

使い方も簡単なので、ぜひ使ってみてくださいね!

プログラミング学習を効率良く進めたいなら…

学習を始めたけどエラーが解決できない
作りたいものはあるけど、何から始めればいいかわからない
プログラミングに対して、このような悩みを持っている方も多いですよね。

そんな方には、弊社が運営するサブスク型のプログラミングスクール「SAMURAI ENGINEER Plus+がおすすめです。



月額2980円(税別)で、主に4つのサービスを提供させていただきます。

  • 現役エンジニアによる月1度の「マンツーマン指導」
  • 平均回答時間30分の「Q&Aサービス」
  • 作りながら学べる28種類の「教材」
  • 学習を記録&仲間と共有できる「学習ログ」

目的にあった教材を選べば、どなたでも効率よく学習できるほか、Q&Aサービスやマンツーマン指導を活用することで、挫折せずにプログラミングの習得が可能です。

プログラミングを効率的に学びたい人はもちろん、何から始めたらよいのかわからない方は、ぜひ「SAMURAI ENGINEER Plus+」をご利用ください。
まずは30日無料体験

書いた人

Sanshiro Wakizaka

北海道出身の30歳で、フリーランスエンジニア兼テックライターとして活動中。新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!

侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。