アクセス数アクセスカウンター

トップページ
更新・会社概要
ご 注 文 画 面
ご注文について
プライバシーポリシー
法律による表記
健康情報など
取扱商品一覧
お問い合わせ
パパナピ!

 


健康情報 ⇒ どこへ向かって・・・ ⇒ VBAトップ ⇒ 変数について


プログラムを作るに当たり、一時的に利用する記憶領域を作らなければならない場面は多々あります。


一般的なのは以下のような使い方です。


Dim i as Integer

Dim j as Integer

For i = 1 to 9

    For j = 1 to 9

        Debug.Print i *j

    Next

Next


Forループを使って九九の計算をしています。

「i」と「j」が変数であり、プロシージャが終了すると消えるため一時変数と呼ばれます。




宣言の種類

●Dim ステートメント 一般的 Dimension(次元)

Dim intX as Integer

intX⇒変数名(予約語でなければ自由に命名できますが、分かりやすいように。私の場合は、型が分かりやすいように「int」とか「str」などと先頭につけています)

Dim strX as String

String⇒変数の型です 型について(別窓)>>


●Static ステートメント    静的変数

Static xxx as Integer

宣言されたモジュールがリセットされるか再実行されるまで値を保持します。


●Private ステートメント    プライベート変数

Private intX as Integer

モジュール先頭部分で宣言。モジュール内からしか参照できないグローバル変数。


●Public ステートメント    パブリック変数

Public intX as Integer

モジュール先頭部分で宣言。他のモジュールからも参照できるグローバル変数。




配列 Dimension(次元)


●Dim x(9) as Integer  '一次元配列

⇒x(0),x(1),x(2)...x(9) の10個の変数が用意されます。


●Dim x(9,9) as integer    '二次元配列

x(0,0):x(0,1):x(0,2):x(0,3):x(0,4):x(0,5):x(0,6):x(0,7):x(0,8):x(0,9):
x(1,0):x(1,1):x(1,2):x(1,3):x(1,4):x(1,5):x(1,6):x(1,7):x(1,8):x(1,9):
x(2,0):x(2,1):x(2,2):x(2,3):x(2,4):x(2,5):x(2,6):x(2,7):x(2,8):x(2,9):
x(3,0):x(3,1):x(3,2):x(3,3):x(3,4):x(3,5):x(3,6):x(3,7):x(3,8):x(3,9):
x(4,0):x(4,1):x(4,2):x(4,3):x(4,4):x(4,5):x(4,6):x(4,7):x(4,8):x(4,9):
x(5,0):x(5,1):x(5,2):x(5,3):x(5,4):x(5,5):x(5,6):x(5,7):x(5,8):x(5,9):
x(6,0):x(6,1):x(6,2):x(6,3):x(6,4):x(6,5):x(6,6):x(6,7):x(6,8):x(6,9):
x(7,0):x(7,1):x(7,2):x(7,3):x(7,4):x(7,5):x(7,6):x(7,7):x(7,8):x(7,9):
x(8,0):x(8,1):x(8,2):x(8,3):x(8,4):x(8,5):x(8,6):x(8,7):x(8,8):x(8,9):
x(9,0):x(9,1):x(9,2):x(9,3):x(9,4):x(9,5):x(9,6):x(9,7):x(9,8):x(9,9):

↑100個の変数

表計算シートのように使えます。


●Dim x(9,9,3) as Integer    '三次元配列

立体的な概念。表計算シートのそれぞれのセルに属性を持たせるような感じで使えます。


便利ですが、メモリ消費も多いです。




動的配列

ReDim (再宣言して配列の長さを変更する)

ReDim Preserve (それまでの配列内情報を保持したまま配列の長さを変更する)


'使い方

Dim x() As Integer '一旦、()として宣言
Dim i As Integer    'カウンタ
For i = 0 To 10
    ReDim Preserve x(i) As Integer    '配列を再定義
    x(i) = i   
Next

For i = 0 To 10
    Debug.Print "x(" & i & ")=" & i    ’配列の書き出し
Next


'結果

x(0)=0
x(1)=1
x(2)=2
x(3)=3
x(4)=4
x(5)=5
x(6)=6
x(7)=7
x(8)=8
x(9)=9
x(10)=10

上の使い方では、「i」の値が0〜10と固定されているため意味がありませんが、それがユーザーに入力してもらうなどして、予測できない場合には有効です。




固定長文字列

Sub abc()
    Dim strX As String * 10
    strX = "abcdefghijklmnop"
    Debug.Print strX
End Sub

変数strXには、「abcdefghij」の10文字が収められています




定数

Dim PAI as Integer = 3.14

x = r * r * PAI    '円の面積を求める




(C)山本健康堂 2005-2024