[VBA] CStr関数で指定した値を文字列型に変換します

CStr関数で指定した値を文字列型に変換します

 Cstr関数 は引数に指定した値のデータ型を文字列型に変えてしまう関数です。

数値を文字列に変えます

 さっそく Cstr関数を試してみましょう。
 まずは数値を文字列に変えてみますよ。

 'Cstr関数をテストします

 Sub CstrTest1()

 Dim x As Double

 x = 3.14

 csx = CStr(x)

 'VarType関数でデータ型を調べます
 '(8が返れば文字列型)

 mytype = VarType(csx)

 Debug.Print mytype

 End Sub

 倍精度浮動小数点型 (Double型) の変数 x を Cstr関数の引数に指定しています。変換された値を csx に放り込んで、VarType関数でデータ型を調べているのです。csx は Variant型なので、正確には内部処理形式のデータ型を調べているのですけど、そんな細かいことはあまり気にしないでいいです。実行すると「 8 」という数値が返ってきます。これはデータが文字列型 (String型) であることを示しています。
 

日付を文字列変えます

 今度は Cstr関数に日付を入れてみます。

 'Cstr関数に日付を入れます

 Sub CstrTest2()

 Dim mydate As Date

 mydate = Now()

 csdate = CStr(mydate)

 'VarType関数でデータ型を調べます
 '(8が返れば文字列型)
 mytype = VarType(csdate)

 Debug.Print mytype

 End Sub

 Now関数で現在の日付と時刻を得て、それを Cstr関数で文字列に変換しています。実行してみると、やっぱり「 8 」が返ってくるので、ちゃんと文字列型になっています。
 

String型変数に値を入れても同じです

 ここまで長々と説明しておいて、こう言ってはなんですけど、Cstr関数の使い道はほとんどありません。というのは、数値や日付を文字列型データに変換したいなら、String型変数に値を放り込んでしまえばそれで済むことだからです。たとえば上の日付を文字列に変えるマクロは、次のように書けばすっきりしたコードになります。

 '日付を文字列に変えます

 Sub CstrTest3()

 Dim mydate As String

 mydate = Now()

 mytype = VarType(mydate)

 Debug.Print mytype

 End Sub

 このマクロを実行しても、ちゃんと「 8 」が返ってくるので、文字列に変換されていることがわかります。

 ≫ VBA 辞典メニューに戻って他の記事も読んでね~

Google広告
スポンサーリンク
スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください