VBA変数のチュートリアルでは、データタイプについて学びました。 VBAにデータタイプを指定することは必須ではありませんが、データタイプを正しく使用すると、プログラムを理解しやすくなり、プログラムの運用効率を向上させることができます。
次には実際のコード例を通じて、VBAのデータタイプについて詳しく勉強します。
目次
文字列型
文字列型は、最も常用なデータ型であると言えます。 実際には、ほとんどすべてのデータは文字列型です。そのため、文字列をよく理解することがVBAを学ぶための基礎となります。
型名 | データ型 | 値の例や範囲 |
String | 文字列型 | 0から20億の文字 |
まず、文字列型の変数を宣言します。Stringはタイプ識別子です。ステートメントは次のとおりです。
Dim name As String
VBAでは、テキストは英字の二重引用符で表現する必要があります。
name = "山本"
数字の両端に二重引用符を付けると、文字列型になり、数字として表示しなくなります。
name = "101"
セル内のテキストを使用して、文字列型の変数に値を割り当てることができます。
name = Range("A1")
Excelが提供する文字列型の関数と同じ、VBAは、次のような文字列型の関数を提供し、プログラムに直接使用できます。
- Format:データをフォーマットし、値を文字列として返します
- InStr:指定された文字の位置を返します
- InStrRev:指定された文字位置を反対側に返します
- Left:文字列の先頭(左端)から指定された数の文字を返します
- Len:文字列の文字数を返します
- LCase:文字列中のすべての文字を小文字に変換します
- LTrim:文字列の先頭の空白 (スペース) を取り除いて返します
- Mid:文字列の任意の位置から指定された文字数の文字を抽出します
- Replace:文字列中の指定された数の文字を他の文字に置き換えます
- Right:文字列の末尾(右端)から指定された数の文字を返します
- RTrim:文字列の後続ブランクを削除します
- Space:指定した数の半角スペースを返します
- StrComp:2つの文字列を比較し、その結果を整数値で返します
- StrConv:文字種を変換して返します
- String:指定された繰り返し回数の文字列を返します
- StrReverse:指定した文字列の並びを逆にした文字列を返します
- Trim:文字列の空白を削除します
- UCase:文字列を小文字に変換して返します
各関数の使用方法については、「内蔵の関数」の章で詳しく説明しています。
数値型
数値型は、2番目の基礎データタイプです。 VBAコードを作成する時は、数値の大小によって対応する数値型を選択する必要があります。
小さな数値が広範囲の数値型で保存されると、コンピュータのメモリが無駄になります。大きな数値が小さな範囲の数値型で保存されると、VBAは自動的に小さな範囲の数値に変換し、数値の精度が失います。
VBAの数値型は次の通りです。
型名 | データ型 | 値の例や範囲 |
Byte | バイト型 | 0 至 255 |
Integer | 整数型 | -32,768 至 32,767 |
Long | 長整数型 | -2,147,483,648 至 2,147,483,648 |
Single | 単精度浮動小数点実数型 | 負数: -3.402823E38 ~ -1.401298E-45 正数: 1.401298E-45 ~ 3.402823E38 |
Double | 倍精度浮動小数点実数型 | 負数: -1.79769313486231E308 ~ -4.94065645841247E-324 正数: 4.94065645841247E-324 ~ 1.79769313486231E308 |
Currency | 通貨型 | -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807 |
Decimal | 10進型 | スケールが 0 (小数部がない) の場合: +/- 79,228,162,514,264,337,593,543,950,335 小数点以下の桁数が28の場合: +/- 7.9228162514264337593543950335 |
その中で、Integer、Long、およびDoubleは常用の数値型です。
文字列と同様に、数値型を宣言するには、次のステートメントを使用します。
Dim age As Integer
上記の年齢変数を定義するには、基本的なInteger整数型を使用すればいいです。
数値型の変数は、数値のようにさまざまな算術演算が実行できます。
age = 3
age * 2 + 10 ‘-> 16
数値型に関わる内容は今後のチュートリアルで詳しく説明します。
論理型
論理型には、TrueとFalseの2つの値しかありません。つまり、真と偽です。
型名 | データ型 | 値の例や範囲 |
Boolean | 論理値 | True 又は False |
論理値は2つしかありませんが、プログラムでの使用範囲が広いです。 論理値は、VBAの条件判断によく使用されます。
論理型の変数を宣言するには、次のステートメントを使用します。
Dim isPass As Boolean
論理型の変数に値を割り当てるには、論理値を直接使用できるし、論理値を返す数式も使用できます。
isPass = False
isPass = 70 >= 60
日付/時刻データ型
VBAでの日付と時刻は数字で表され、整数部分は日付を表し、小数部分は時刻を表します。
- 日付は100-1-1から9999-12-31までです。
- 時刻は00:00:00から23:59:59までです。
日付型の変数を宣言するには、次のステートメントを使用します。
Dim birthday As Date
Dim time As Date
日付変数に値を割り当てる場合、日付を2つの#の間に直接配置したり、数値を使用したリ、日付を文字列として割り当てたりすることもできます。
birthday = #2018-1-1#
birthday = 43101
birthday = "2018-1-1"
time = #12:00:00#
time = 0.5
time = "12:00:00"
Variant型
Variant型は通用型で、任意のデータ型を表すことができます。また、データ型を指定せずに変数を宣言する場合のデフォルト型です。
Variant型は便利ですが、より大きなメモリを占有し、プログラムの実行効率にも影響します。そのため、データの種類が明確に分かっている場合は、データ型を指定することをお勧めします。データ型が確定できない場合は、Variant型を使用します。
コメントを残す