#02 VBAであつかう値について
2020-08-10 00:00:00
前回作成したマクロでは下のコードを使って A1 セルに 1 を入力しました。
Range("A1").Value = 1
ここでは整数値の1を使いましたが、ワークシートのセルに文字列などが入力できるように、マクロでも文字列や日付や小数など様々な値を入れることができます。
ワークシートの場合はセルにどのような値を入れるかはあまり気にしなくても、思ったとおりに処理されることが多いですが、プログラムの中ではどのような値をつかうか(値の型、タイプ)を意識することは重要です。
- Integer (Byte, Long) 整数
- Double (Single) 小数
- String 文字列
- Date 日付、時刻
- Boolean 真偽
その他にも以下のような型があります。
- Currency 通貨型(大きな数字を扱うためには便利なのかもしれません。あまり使っているのをみたことありません。)
- Object オブジェクトをあつかうための型
- Variant どのような値もあつかえる型
ソースコードの中に値そのものが直接表記されてれいるものをリテラル(英語で文字上の、文字通りといった意味)といって型によって書き方が決まっています。
数値(整数、小数)はそのまま1や0.5と書きます。文字列は”(ダブルクオート)でかこみます。ABCなら”ABC”と記述する必要があります。(サンプルのマクロでは、セルの場所を指定するために”A1″という文字列をつかっています。)
日付は#Month/Day/Year#という形式で、例えば2020年12月1日なら#12/1/2020#となります。日付のリテラルはあまり頻繁に使わないので、わたしもよく使い方を忘れてしまいます。その他に真偽をあらわすTrue/Falseがありますが、こちらはよくつかわれます。
リテラル使用した下のような式は全て有効で、おそらくあなたの想定したとおりの動きをします。(当面は、数字はそのまま、文字列は”で囲む、とおぼえておいていただくとよいと思います。)
Range("A1").Value = 0.5 Range("A1").Value = "ABC" Range("A1").Value = #12/1/2020# Range("A1").Value = False