【5】VBAの変数とデータ型について

記事で紹介しているエクセル
・エクセル2019 [64ビット版]

目次

変数について知ろう

今回は変数について解説いたします。

VBAに限りませんが、プログラム言語において変数は必ず存在しています。

変数とは、ざっくり行ってしまえばデータの「入れ物」です。

以下のソースコードを解説しながら、変数について説明いたします。

Sub test4()
    
    '整数型「Integer」で変数宣言
    Dim Hensu1 As Integer
    '文字列型「String」で変数宣言
    Dim Hensu2 As String
    
    '変数「Hensu1」に整数「1」を代入
    Hensu1 = 1
    '変数「Hensu2」に文字列「bbb」を代入
    Hensu2 = "bbb"
    
    MsgBox (Hensu1)
    MsgBox (Hensu2)
    
End Sub

いきなり 新しい記述やら用語やらが出てきましたが大丈夫です。

1つずつ解説していきます。

これまでのおさらい

まずこれまでのおさらいです。

「test4()」は関数です。

そしてコメントアウトは「’」シングルクォーテーションが行の先頭に付いています。

そして「MsgBox」はメッセージを表示させるための標準関数です。

ここまでは問題ないでしょう。

次は新しく出てきた事を解説いたします。

変数宣言について

    '整数型「Integer」で変数宣言
    Dim Hensu1 As Integer
    '文字列型「String」で変数宣言
    Dim Hensu2 As String

「Dim」とはVBAにおける変数を宣言するための記述です。

よくこのような決り文句を「おまじない」と解説される書籍などがありますが、そのように受け取っていただいても構いません。

そして次の「Hensu1」ですが、これが変数です。

この変数は「Hensu1」という名前です。

変数名は何でも構いません。

変数名に使えない文字や、使えない名前がありますが、大抵は問題ないと思いますので、ここでは詳しく解説しません。

使えなかった場合は、プログラム実行時にエラーが出て分かりますので修正しましょう。

この「Hensu1」には、プログラムにおけるデータが入ります。

変数は箱のようにイメージしていただいて構いません。

変数のデータ型について

その次の「As Integer」ですが、これは変数のデータ型を指定しています。

この型とは、特定のデータのみを指します。

例えば「Hensu1」の場合は「Integer型(インテジャー)」になります。

VBAでは、「Integer型」は「-32,768~32,767の整数」の範囲の整数になります。

つまり、「Hensu1」はInteger型なので、文字を入れる事ができませんし、数字も「32,768以上と-32,769以下」は入れる事ができません。

入れてもエラーになります。

「Hensu2」の場合は「As String」で「String型(ストリング)」になります。

String型は(任意の長さの)文字列になり、文字列を入れる事ができます。

なぜ変数にはこのような型があるのでしょうか?

これからプログラムを学ぶにあたり分かってきますので、今は変数には代入できる型がある事だけ覚えておきましょう。

ちなみに肩のしていは「AS <型名>」で指定します。

型名の一覧は以下のページに一覧があります。

あわせて読みたい
VBAの変数の型名
VBAの変数の型名型名型指定文字格納できるデータブール型BooleanTrueまたはFalseバイト型Byte0~255までの整数整数型Integer-32,768~32,767の整数長整数型Long-2,147,483,648~2,147,4...

変数の代入について

変数の宣言と型について解説した所で、今度は変数の代入について説明したします。

    '変数「Hensu1」に整数「1」を代入
    Hensu1 = 1
    '変数「Hensu2」に文字列「bbb」を代入
    Hensu2 = "bbb"

このソースコードでは、実際に変数に値を代入しています。

「Hensu1」はInteger型なので、整数を代入しています。

「Hensu2」はString型なので、文字列を代入しています。

それぞれ「<変数名> =」と書き、「=」イコールを使って代入しています。

代入方法が型によって異なっているのが分かるでしょうか?

「Hensu2」のString型には「=」の後に「”」ダブルクオーテーションで囲われています。

画像1

このダブルクオーテーションが必ず必要です。

一方、「Hensu1」はダブルクオーテーションは必要ありませんが、ダブルクオーテーションを付けても動作します。

どちらでも良いですし、できればダブルクオーテーションを付けて統一した方が覚えやすいでしょう。

しかし、整数型などの数値の型は、基本的にダブルクオーテーションを使えたとしても、使わない方が良いです。

その理由は、ダブルクオーテーションがなければ、見ただけで数値の型である事が分かるため、多くのプログラム言語やプログラマーがそのように記述しているからです。

VBA以外の言語を学ぶためにも、これは徹底しておいたほうが良いでしょう。

実際にプログラムを動かしてみよう

それでは、この「test4関数」を実行してみましょう。

画像2

MsgBox関数はメッセージを表示します。

変数に入れられた「Hensu1」と「Hensu2」のメッセージを表示しました。

変数は基本中の基本ですが、重要な部分ですのでキッチリ抑えておきましょう!

よかったらシェアしてね!
目次
閉じる