健康情報 ⇒ どこへ向かって・・・ ⇒ 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 '円の面積を求める
月~土曜日(10:00am~5:00pm) 日祝定休日
・ 当サイトにて随時(24時間)受付しております。
・ お電話、ファックス、メールでのご注文も随時受付しております。
・ 午後3時までのご注文分につきましては即日発送いたします。
※日曜、祝日のご注文分につきましては翌営業日発送となります。
なお、在庫の状況によって発送が遅れる場合もございますのでご了承願います。
~当サイトからのご注文~
※ 取り扱い商品一覧画面の画像をクリックすることにより各商品の詳しい説明画面に移ります。
~配達日及び配達時間帯のご指定~
・お届けの日及びお届け時間帯につきましては、ご都合の良い日時をお選びいただけます。
[午前中] [14~16時] [16~18時] [18~20時] [19~21時]
~配送料~
・1回のお買い上げ金額が5,000円(税込み)以上の場合には、配送料は日本全国無料とさせていただきます。
・1回のお買い上げ金額が5,000円(税込み)に満たない場合には、配送料650円(税込み)をご負担願います。(一部例外もございます。)
~代金引換手数料~
・代金引換手数料につきましては、全額当方で負担させていただきます。
~代金引換のお客様~
・現金、クレジットカード、デビットカードのいずれかでのお支払いとなります。
![]()
~クレジットカード決済サービス~
<直接決済は終了しました>
![]()
・お客様登録画面(ご希望商品選択後)にて簡単決済
![]()
~銀行振込のお客様~
・お振込確認後直ちに発送いたします。(お振込手数料はご負担願います)
お振込先:PayPay銀行 (0033) ビジネス営業部 (005)
(普通) 1 5 1 8 4 1 7 ヤマモトケンコウドウヤマモトマサハル