01-VBA

制御構文|Excel VBA (Part.1) 概要編 | 現役エンジニア&プログラミングスクール講師

Excel VBA 制御構文

制御構文ってなんだ?

プログラムには、「ある一定の条件下でのみ命令を行わせたい場合」や「同じような命令を何度も繰り返して行わせたい場合」があります。通常プログラムは上から順番に書かれた内容をひとつずつ処理をする仕組みになっているので、それ以外の動きを持たせたい場合には、その動きを行わせる(制御する)専用の記述が必要になります。これらを制御構文と言います。

構造化プログラミング

構造化プログラミングはプログラムを3つの基本構造(順接、選択、反復)で組み合わせて記述する方法です。このうち、「順接」は上から順番に命令が行われるものです。、その他に条件の成立・不成立によって処理を選択する「選択(条件分岐)」と条件の成立・不成立によって処理を反復する「反復(繰り返し)」があります。

Excel VBA 制御構文の種類

制御構文が初めての方はまずは模写して動きを見てみるだけでもいいと思います。ゆっくり動きを確認することでプログラムの順番を段々と早く追えるようになります。

条件分岐(選択)

制御構文のうち条件分岐に関しては【If Thenステートメント】と【Select Caseステートメント】の二種類が存在します。

IF – Then ステートメント

構文If 条件 Then
条件に合ったときの処理
End If

例文

Option Explicit

Sub conditionalBranchIf()
    Dim age As Byte
    
    On Error GoTo ErrorSample
    age = InputBox("あなたの年齢を入力して下さい")
    
    If age >= 20 Then
        MsgBox age & "ですね。お酒の購入をしていただけます。"
    Else
        MsgBox age & "ですね。お酒の販売はできません。"
    End If
    Exit Sub
    
ErrorSample:
    MsgBox "年齢を正しい形式で入力してください。"
End Sub

実行結果

プログラムを記述したら以下の手順でプログラムを動かします。

  1. プロシージャ内にカーソルを置きます。(動かしたいプロシージャ内をクリック)
  2. ツールバー内の「」をクリックします。

インプットボックスが表示されます。色々な値を入力して動きを見ることが出来ます。

Select – Case ステートメント

構文Select Case 条件
Case 条件1
処理1
Case 条件2
処理2
Case 条件3
処理3
Case Else
処理4
End Select

例文

Sub conditionalBranchSelect()

    Dim Department As String

    Department = InputBox("部署を入力して下さい" & vbLf & _
                    vbLf & _
                    "経理部" & vbLf & _
                    "営業部" & vbLf & _
                    "企画部" & vbLf & _
                    "開発部")
    
    
    Select Case Department
        Case "経理部"
        MsgBox "経理部ですね。本日のMTGはAM10:00からです。"
        Case "営業部"
        MsgBox "営業部ですね。本日のMTGはAM13:00からです。"
        Case "企画部"
        MsgBox "企画部ですね。本日のMTGはAM15:00からです。"
        Case "開発部"
        MsgBox "本日はMTGはありません。"
        Case Else
        MsgBox "正しい部署を入力してください。"
    End Select

End Sub

実行結果

プログラムを記述したら以下の手順でプログラムを動かします。

  1. プロシージャ内にカーソルを置きます。(動かしたいプロシージャ内をクリック)
  2. ツールバー内の「」をクリックします。

インプットボックスが表示されます。色々な値を入力して動きを見ることが出来ます。


繰り返し(反復)

制御構文のう繰り返し文に関しては大きく分けて【For Nextステートメント】と【Do Loopステートメント】の二種類が存在します。

For – Next ステートメント

構文For カウンタ変数 = 初期値 To 終了値 (Step 値に対する幅)
処理
Next (カウンタ変数)

例文

Sub conditionalBranchFor()

    Dim i As Integer
    
    For i = 1 To 5
        MsgBox i & "回目の表示です。"
    Next i

End Sub

実行結果

プログラムを記述したら以下の手順でプログラムを動かします。

  1. プロシージャ内にカーソルを置きます。(動かしたいプロシージャ内をクリック)
  2. ツールバー内の「」をクリックします。

MsgBoxがカウント回数分表示されます。

Do – Loop ステートメント(Whileステートメント)

構文Do While 条件
処理
Loop

例文

Sub conditionalBranchWhile()

    Dim i As Integer
    i = 1
    
    Do While i <= 5
        MsgBox i & "回目の表示です。"
        i = i + 1
    Loop

End Sub

実行結果

プログラムを記述したら以下の手順でプログラムを動かします。

  1. プロシージャ内にカーソルを置きます。(動かしたいプロシージャ内をクリック)
  2. ツールバー内の「」をクリックします。

Forステートメント同様にMsgBoxがカウント回数分表示されます。

今回は以上となります。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

制御構文|Excel VBA (Part.9)【Do Loop】基本編 | 現役エンジニア&プログラミングスクール講師

2022年11月30日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

ExcelVBAのOffsetプロパティ | 現役エンジニア&プログラミングスクール講師

2022年8月28日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

ExcelVBAの変数 (Part.1) 基本編 | 現役エンジニア&プログラミングスクール講師

2022年9月13日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

VBScriptを利用したVBAプロシージャの呼び出し(Part.2)| 現役エンジニア&プログラミングスクール講師

2023年2月15日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の「オブジェクト活用」(Part.4)【ブック活用編】| 現役エンジニア&プログラミングスクール講師

2022年12月17日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

ExcelVBAのActiveSheetプロパティ | 現役エンジニア&プログラミングスクール講師

2022年8月10日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site