VBAデータタイプの基礎チュートリアル

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
Decimal10進型スケールが 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型を使用します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です