変数とデータ型

データ型

  データ型 使用メモリ 値の範囲
数値データ バイト型 (Byte) 1バイト 0 〜 255
整数型 (Integer) 2バイト -32,768 〜 32,767
長整数型 (Long) 4バイト -2,147,483,648 〜 2,147,483,647
単精度浮動小数点数型 (Single) 4バイト -3.402823E38 〜 -1.401298E-45 (負の値)
1.401298E-45 〜 3.402823E38 (正の値)
倍精度浮動小数点数型 (Double) 8バイト (負の値) -1.79769313486231E308 〜 -4.94065645841247E-324
(正の値) 4.94065645841247E-324 〜 1.79769313486232E308
通貨型 8バイト 15 桁の整数部分と 4 桁の小数部分を持つ固定小数点数
論理データ ブール型 (Boolean) 2バイト 真 (True) または偽 (False)
日付・時間 日付型 (Date) 8バイト 西暦 100 年 1 月 1 日〜西暦 9999 年 12 月 31 日
文字列データ 文字列型 (String) (可変長) 10バイト+文字長 約 2GB (2^31) までの文字を格納できる
オブジェクトすべて オブジェクト型 (Object) 4バイト オブジェクトを参照するデータ型
すべて バリアント型 (Variant) (数値) 22バイト+文字長 倍精度浮動小数点数型の範囲と同じ


変数の名前 

参考 

ぜんこうさんより次のような貴重なアドバイスをいただきました。大変参考になりました。

変数名は先頭にデータ型を小文字で明示して Dim を見なくても変数の型が
わかるようにします。その後で頭を大文字にして、変数名をわかりやすい
ように、必要なら省略しながら命名します。
Integer → intAge
Long → lngRecCnt (RecordCountの略)
String → strAddress
Boolean → blnExistFile
みたいな感じ。

定数は型は書かずに、全部大文字にしてます。
MAX_LINE_COUNT
INIT_FILENAME
みたいな感じ。

プロシージャ名は、単語の先頭を大文字で後は小文字、述語を最初に
書いてます。
GetFileName
SetJobsComboBox
みたいな感じ。

また、フォームのテキストボックスなども変数と同様にコントロールの
種類がわかるようにしてます。
TextBox → txtAddress
ComboBox → cmbJobs
ListBox → lstCompany
CommandButton → cmdOk または btnOk
みたいな感じ。

 

変数名の制約 

変数の宣言 

変数にはデータ型があります。 プログラム中で使用する変数は、あらかじめどのようなデータ型で使用するのかを宣言する必要があります。 変数のデータ型は、Asキーワードを使った構文で変数と一緒に宣言します。

Dim 変数 As データ型

複数の変数を宣言するときに、カンマで区切って宣言することもできます。
Dim 変数1 As データ型,変数2 As データ型,....

オブジェクト型変数 

オブジェクト型変数は、値ではなくほかのオブジェクトへの参照を格納します。オブジェクト型として宣言した変数には、Set ステートメントを使用してオブジェクトへの参照を代入することができます。

Dim db As Database 'データベース型変数
Dim rs As Recordset 'レコード型変数

Set db = CurrentDb 'カレントデータベース参照
Set rs = db.OpenRecordset("自社情報", dbOpenDynaset) 'レコードオブジェクト作成

変数の適用範囲 

定数 

特定の値の代わりになるキーワードを定数といいます。定数を宣言して値を設定するには、Const ステートメントを使います。定数の宣言後、定数を修正したり、新しい値を代入することはできません。
プロシージャ内または宣言セクションのモジュールの先頭で定数を宣言します。モジュール レベル定数は、既定ではプライベート定数となります。パブリック モジュール レベルの定数を宣言するには、Const ステートメントの前にキーワード Public を指定します。Const ステートメントの前にキーワード Private を指定して、プライベート定数を明示的に宣言すると、コードの内容がわかりやすくなります。

Const 定数名 As データ型 = 値 

次の例は、パブリック定数 conAge を整数型 (Integer) として宣言し、定数に値 34 を代入します。

Public Const conAge As Integer = 34

 

ユーザー定義型 

ユーザー定義型は、複数の要素を持つ、ユーザーが定義できるデータ型です。関連のある異なったデータ型の要素を、1つの変数として管理できます。

Type ユーザー定義型

   要素名1 As データ型
   要素名2 As データ型

End Type

次の例では、Typeステートメントを使って「MEIBO」という名前のユーザー定義型を宣言しています。「Rensyu3」プロシージャ内で、ユーザー定義型の変数として「chie」を宣言しています。

配列 

配列とは、同じデータ型を持つ要素の集合のことです。関連のある変数をまとめて管理することができます。
1つの変数には1つのでデータしか入れることはできませんが、配列を使うと、大量のデータを便利に使うことができます。配列は同じ型の箱(変数)を複数並べて名前をつけたものです。
箱全体に付ける名前を「配列名」といい、ひとつひとつの箱は「添え字」という番号で管理します。 [a]という名前の配列を絵にしてみました。

配列は、連番のインデックスにより、1次元配列だけでなく2次元の配列など、多次元の配列(最大60次元)を宣言することができます。インデックスの最小値は、通常は0ですが、Option Baseステートメントを使って、1にすることができます。