01-VBA

制御構文|Excel VBA (Part.2)【If Then】基本編

お知らせ

こちらの記事は、電子書籍「難しく考えないExcel VBA基礎学習編」として出版されました。記事は途中までが試し読みの対象となります。

howahowablogのVBA記事が電子書籍にて販売となりました。

目標

VBAのIf-Thenステートメント(条件分岐)について理解し利用できる

目標の具体的な内容は以下通りです。

  1. If Thenステートメントを読める。
  2. If ThenステートメントのThenを付け忘れしない。
  3. If ThenステートメントのEnd Ifを誤って消しても気づく、追記できる。
  4. 記述できる条件の種類を増やす。
  5. 職場でIf Thenステートメントがでてきても困らない。

「難しく考えない!」が大原則!

書籍やWebサイトでも制御構文を学習する場合、練習用のプログラムとして準備されるものは基本的には文法的な内容や動きに着目した設計になっています。

言い換えると、具体的な利用シーンを想定して学習するのは難しいと言えます。こういったことからも、この分野の学習は、まず「深く考えない」ことが重要です。

学習時のマイルストーンの中に「見たことがある!」を置いておくことはとても重要なことなので、「何に使われるのだろう?」は一旦、考えないようにしましょう。

  1. 「見たことがある!」を経験する
  2. 「何に使われるか?」は考えない

「練習用のプログラムが読める(できれば書ける)」ことが、学習時のひとまずのゴールです。

VBAの条件分岐

条件分岐には2種類ある

VBAで条件分岐を行う場合、その方法は大きく2種類に分けられます。

  1. 【If Thenステートメント】を使用する方法
  2. 【Select Caseステートメント】を使用する方法

今回は【If Thenステートメント】について扱います。

VBAのIf Thenステートメント

If Thenステートメントで扱える条件

If Thenステートメントの基礎学習では「条件」に「○○の値より小さい場合」や「○○の値より大きい場合」のような単純な条件を書くことが多いです。

その他にも、このIf Thenステートメントには以下のような色々な条件を利用することが出来ます。

  1.  セルやダイアログボックスから取得した値(「空」も含む)
  2.  MsgBoxなどのダイアログボックスのボタンの値
  3.  「値の表示形式」や「変数の型の種類」

この記事でも「If Thenステートメント」の動きを理解しやすい「取得した値」でのプログラムを扱っていきます。その他については別の記事で扱ってみようと思います。

If Thenステートメントの文法

If Thenステートメント

条件がひとつで処理は条件にあったときのみ行うパターン

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

次のスクリプトを実行してみます。

If age >= 20 Then
    MsgBox age & "ですね。お酒の購入をしていただけます。"
End If

サンプルプロシージャ

Option Explicit

'conditionalBranchIfという関数名に意味はなく自由な名前を付けることが出来ます。

Sub conditionalBranchIf_1()

    Dim age As Byte
    age = InputBox("注意1" & Chr(10) & _
                   "入力の年齢が20以上の場合のみ" & Chr(10) & _
                   "「お酒の購入をしていただけます。」のコメントが出力されます。" & Chr(10) & _
                   "注意2" & Chr(10) & _
                   "0から255までの数字以外が入力されるとエラーになります。" _
                   , "あなたの年齢を入力して下さい")
    
    If age >= 20 Then
        MsgBox age & "ですね。お酒の購入をしていただけます。"
    End If
    
    MsgBox "終了"
End Sub

実行結果

この記事の試し読みはここまでとなります。

If Then Elseステートメント

サンプルプロシージャ

実行結果

If Then ElseIfステートメント

サンプルプロシージャ

実行結果

今回は以上となります。

howahowablogのVBA記事が電子書籍にて販売となりました。

初心者も実践で通用!「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.3)「フォームコントロール」「ActiveX コントロール」

2022年12月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

制御構文|Excel VBA (Part.7)【For Next】ネスト編(後編)重複のないランダムな数の生成

2022年11月26日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア 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.1)【PageSetupプロパティ/PrintPreviewメソッド/PrintOutメソッド】編

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