ExcelでVBの基本を

5.制御構造と配列
場合分け(If Then Else,Select Case)
繰返し(Do While)
繰返しその2(For Next)
5.1 場合分け
代表的な形式(フォームの変更)
まず,次のようにフォームを変更しよう
TextBox1
Text : 空白
Label1
Caption : 空白
CommandButton1
Caption : If_Then_Else
If Then Else 代表的な表現(イベントハンドラ)
構文
CommandButton1のClickイベントハンドラ
If 論理式 Then
文(複数の文を記述可能)
Else
文(複数の文を記述可能)
End If
実行結果
Thenの後が1文のみでElseの文がないとき
コマンドボタン追加
CommandButton2
Caption : If_Then
CommandButton2のClickイベントハンドラ
実行結果
構文
If 論理式 Then 文(1文のみ)
比較が並ぶようなときElseifの使用
コマンドボタン追加
CommandButton3のClickイベントハンドラ
CommandButton3
Caption : Elseif
構文
If 論理式 Then
文(複数の文を記述可能)
Elseif 論理式 Then
文(複数の文を記述可能)
Else
文(複数の文を記述可能)
End If
実行結果
同一変数の値による場合分け
コマンドボタン追加
CommandButton3のClickイベントハンドラ
実行結果
構文
CommandButton4
Caption : Select_Case
Select Case 変数名
Case 値
文(複数の文を記述可能)
Case 値
文(複数の文を記述可能)
Case Else
文(複数の文を記述可能)
End If
5.2 繰返し
Do While
まず,次のようにフォームを変更しよう
TextBox1
Text : 空白
Label1
Caption : 空白
CommandButton1
Caption : Do_While
Do While (1~Nまでの加算)
構文
CommandButton1のClickイベントハンドラ
Do While 論理式
文(複数の文を記述可能)
Loop
実行結果
For Next (1~Nまでの加算)
CommanButton2の追加
Clickイベントハンドラ
実行結果
CommandButton2
Caption : For_Next
構文
For 変数 = 初期値 To 終了値 Step 増分
文(複数の文を記述可能)
Next
For Each(フォームの変更)
まず,次のようにフォームを変更しよう
CommandButton1
Caption : For_Each
TextBox1
Text : 空白
MultiLine : True
Label1
Caption : 空白
UserFormのInitializeイベントハンドラの記述
Initializeイベントハンドラを選択
イベントとして
Initializeを選択
(注) UserForm_Clickは消去する
フォーム上でダブ
ルクリック
配列(同じデータ型の集まり)
• モジュール間で有効な宣言
宣言するモジュールの最初のプロシージャより前に以下の形
式で宣言する。
Public 変数名(最大Index) as 型名
• モジュール内のみで有効な宣言
宣言するモジュールの最初のプロシージャより前に以下の形式
で宣言する。
Private 変数名(最大Index) as 型名
• プロシージャ内のみで有効な宣言
プロシージャ内で以下の形式で宣言する。
Dim 変数名(最大Index) as 型名
For Each Next (コレクションの中から)
構文
Initializeイベントハンドラ
For Each 変数 In コレクション
文(複数の文を記述可能)
Next
実行結果
(注)以下のように記述することもできる
For I=0 to 5
TextBox1.Text = TextBox1.Text & A(I) & vbCRLF
Next
合計値を求めるプログラムを書いてみよう
Clickイベントハンドラ
(注)以下のように記述することもできる
For I = 0 to 5
C = C + A(I)
Next
実行結果
5.3 サブプログラムとファンクション(関数)
Sub プログラム
実行結果
Function プログラム