変数とデータ型
データ型
データ型 | 使用メモリ | 値の範囲 | ||
数値データ | バイト型 (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 みたいな感じ。 定数は型は書かずに、全部大文字にしてます。 プロシージャ名は、単語の先頭を大文字で後は小文字、述語を最初に また、フォームのテキストボックスなども変数と同様にコントロールの |
変数名の制約
変数の宣言
変数にはデータ型があります。 プログラム中で使用する変数は、あらかじめどのようなデータ型で使用するのかを宣言する必要があります。 変数のデータ型は、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 ユーザー定義型 End Type |
次の例では、Typeステートメントを使って「MEIBO」という名前のユーザー定義型を宣言しています。「Rensyu3」プロシージャ内で、ユーザー定義型の変数として「chie」を宣言しています。
配列
配列とは、同じデータ型を持つ要素の集合のことです。関連のある変数をまとめて管理することができます。
1つの変数には1つのでデータしか入れることはできませんが、配列を使うと、大量のデータを便利に使うことができます。配列は同じ型の箱(変数)を複数並べて名前をつけたものです。
箱全体に付ける名前を「配列名」といい、ひとつひとつの箱は「添え字」という番号で管理します。
[a]という名前の配列を絵にしてみました。
配列は、連番のインデックスにより、1次元配列だけでなく2次元の配列など、多次元の配列(最大60次元)を宣言することができます。インデックスの最小値は、通常は0ですが、Option Baseステートメントを使って、1にすることができます。