変数・定数(基礎編) |
01 変数とは 02 変数のデータ型 03 変数の宣言方法 04 変数の名前付け規則 05 データ型の変換 06 変数の適用範囲 07 配列変数 ・1次元配列 ・2次元配列 ・多次元配列 08 Option Explicitステートメント 09 Accessで使用できる定数
変数は,プログラムの実行中に変化する値を格納するための物です。たとえば
A=100+4
のように記述すると,100+4の計算結果の104を「A」に入れておくことができます。このAが変数です。さらに
B=A*2
と記述すると変数Bには104*2の計算結果が代入されます。
*サイズはバイト数 データ型 サイズ 範囲 バイト型 Byte 1 0〜255 ブール型 Bool 2 真(True)偽(False) 整数型 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.7976931348623E308〜-4.94065645841247E-324(負の数)
4.94065645841247E-324〜1.79769313486232E308(正の数)通貨型 Currency 8 -922,337,203,685,477.5808〜922,337,203,685,477.5807 日付型 Date 8 西暦100年1月1日〜西暦9999年12月31日 オブジェクト型 Object 4 オブジェクトを参照するデータ型 文字列型 String 10+文字列の長さ 0〜2GB バリアント型 Variant 16 すべてのデータを扱えるデータ型で0〜2GB
変数を宣言するには,Dim ステートメント、Staticステートメント、Privateステートメント、Publicステートメントを利用します。
【書式】Dim 変数名 [As type] (type:データの種類)
【書式】Static 変数名 [As type] (type:データの種類)
【書式】Private 変数名 [As type] (type:データの種類)
【書式】Public 変数名 [As type] (type:データの種類)
複数の変数を宣言する場合は,カンマ「,」で区切って指定します。As type節は各変数に記述する必要があります。As type 節を省略して宣言した変数はバリアント型の変数になります。
【使用例】整数型の変数A,Bを宣言する。
Dim A As Integer,B As Integer
これを
Dim A ,B As Integer
と宣言すると変数Aはバリアント型の変数として宣言されます。
変数名は次の規則にしたがって付ける必要があります。
関数 内容 CBool ブール型に変換 CByte バイト型に変換 CCur 通貨型に変換 CDate 日付型に変換 CSng 単精度浮動小数点数型に変換 CDbl 倍精度浮動小数点数型に変換 CInt 整数型に変換 CLng 長整数型に変換 CStr 文字列型に変換 CVar バリアント型に変換
変数を宣言する場所や宣言に使うステートメントによって,変数の適用範囲が異なります。
@ Dim またはStatic ステートメントを使って宣言します。
A Dimステートメントを使って宣言した変数は,そのプロシージャの中だけで有効です。他のプロシージャから参照す
ることはできません。また、プロシージャが終了すると値は破棄されます。
B Staticステートメントを使って宣言した変数は,そのプロシージャの中だけで有効です。他のプロシージャから参照
することはできません。ただし,プロシージャが終了しても,プログラム実行中は値が保持されます。
モジュールの宣言セクションでDimステートメントやPrivateステートメントを使って宣言した変数はそのモジュール全体で使用できます。また代入した値は,プログラムを実行している間保持されます。
@ 標準モジュールの宣言セクションでPublicステートメントを使って宣言した変数は,データベースに含まれるすべ
てのモジュールから参照することができます。データベースの実行中は値が保持されます。
A フォームやレポートのクラスモジュールの宣言セクションでPublicステートメントを使って宣言した変数は,その
フォームやレポートが開いている間は他のモジュールから参照することができます。
たとえば、フォーム「登録」の宣言セクションで
Public strTemp As String
のように宣言された変数「strTemp」を参照するには
Forms!登録.strTemp
のように、フォームやレポートへの参照を含める必要があります。
1)1次元配列
変数名の後ろに()を付けると配列変数を宣言することができます。配列変数は同じデータ型の変数の集まりです。配列変数のメリットは容易にループ構造をつくれることです。
【書式】Dim 変数名(lower To upper) [As type] lower :配列のインデックス番号の最小値 Upper :配列のインデックス番号の最大値 type :データの種類
【使用例】
ステートメント 宣言される変数 Dim A As Integer A Dim A(1 To 4) As Integer A(1),,A(2),,A(3),,A(4)
配列の各要素にアクセスするには,インデックス番号を使います。たとえは,3番目の要素A(3)に7を代入するには
A(3)=7
と記述します。
2)2次元配列
【書式】Dim 変数名 (lower To upper,lower To upper) [As type] lower :配列のインデックス番号の最小値 Upper :配列のインデックス番号の最大値 type :データの種類
【サンプルコード】
Sub Sample() Dim i As Integer, j As Integer Dim A(9, 9) As Integer For i = 0 To 9 For j = 0 To 9 A(i, j) = i * j Next j Next i MsgBox A(2, 3) End Sub
3)多次元配列
3次元以上の配列も同様に定義できます。Visual Basicでは,最大60次元までの配列を宣言できますが,配列の次元が大きくなると,必要なメモリも増大するので,多次元配列を使うときは注意が必要です。例えば,
Dim A(9,9,9) as string
の宣言では,要素の数は,10*10*10=1000となります。
ViBは,プログラムの中に新しい変数名を見つけると,自動的にバリアント型の変数として処理を行い、宣言してない変数を使用してもエラーにはなりません。したがって、変数名を入力ミスしてもエラーは出ません。このような入力ミスを防ぐために「Option Explicitステートメント」が利用できます。
【書式】Option Explicit
@モジュールの宣言セクションにOption Explicitステートメントを記述しておくと,宣言してない変数は使用できなく
なります。
AOption Explicitステートメントは,追加したモジュールだけで有効です。
BViB Editorの「オプション」ダイアログボックスで「変数の宣言を強制する」をオンにすると,新たに作成した
モジュールには,Option Explicitステートメントが自動的に追加されるようになります。
アプリケーションやコントロールで定義されている定数です。オブジェクト,メソッド,プロパティで使用できます。オブジェクトプラウザで各オブジェクトライブラリによって提供されている定数の一覧を表示できます。
「Const」はリテラル値(すでに決められている定数)の代わりに使う定数を宣言します。定数を宣言するにはConstステートメントと使います。宣言方法はDimステートメントと同様です。
【書式】Const 変数名 [As type] =文字列 または 数値 ( type :データの種類)