見出し画像

マクロの教科書 Vol.4

はじめに

こんにちは、まさしです。私は普段Excelの専門知識を活かし、SNSで役立つ情報を発信しています。

前回同様、「マクロの教科書」と題して、マクロの基本的なことを学んでいこうと思います。

前回の記事:

マクロを使うことで、作業効率の向上や業務の自動化が可能になり、ビジネスの生産性を飛躍的に高めることができます。ここでは、エクセルマクロを使うことの具体的なベネフィットについてご紹介します。

  1. 作業効率の向上: 定型業務を自動化することで、手作業にかかる時間を大幅に削減できます。データ入力や計算の繰り返しを自動化し、人的ミスを防ぐことができます。

  2. 精度の向上: 自動化によりヒューマンエラーを減らし、データの精度を向上させます。複雑な計算やデータ処理を正確に実行することができます。

  3. 一貫性の確保: マクロを使用することで、複数のファイルやデータセットに対して同一の処理を一貫して適用できます。データのフォーマットや処理手順の標準化が可能です。

  4. 時間の節約: マクロを実行するだけで、数時間かかる作業を数分で完了できます。時間を他の重要な業務やクリエイティブな作業に充てることができます。

では、さっそくマクロを学んでいきましょう!


導入部

Excel VBAにおける条件分岐は、データの処理やプログラムの制御に不可欠です。

IFステートメントは特定の条件が満たされた場合に特定の処理を行うための命令です。

例えば、セルの値が特定の条件を満たした場合にメッセージを表示させたり、データの加工を行ったりします。

この記事では、IFステートメントの基本的な書き方から応用例までを詳しく解説します。Excelを使ったデータ処理の効率化や自動化に興味がある方にとって、この記事は役立つはずです。

Ifステートメント

構造1 条件式が正しい時のみ

では、さっそくIfステートメントの基本構造を見ていきましょう。

If 条件式 Then
  条件式が正しい時に行う動作
End If

条件式にはTrueとFalseの結果になるような式が入ります。

わかりやすく言うと

If(もしも) 条件式 Then(なら)
  条件式が正しい時に行う動作(をしてください)
End If(違う場合は終わりで)

次に、具体的なマクロを見ていきましょう!

If Range("E3") >= 10 Then
        MsgBox "割引"
    End If

合計が10以上なので、割引というメッセージを出しました。

構造2 条件式が正しい時と正しくないとき

では、条件式がFalseつまり「いいえ」の時に動作させたいときを見ていきましょう。

If 条件式 Then  
 条件式が正しい時に行う動作
Else
 条件が正しくないときに行う動作
End If

わかりやすく言うと

If(もしも) 条件式 Then(なら)
  条件式が正しい時に行う動作(をしてください)
Else(そうでないなら)
  条件が正しくないときに行う動作(をしてください)
End If(終わりで)

次に、具体的なマクロを見ていきましょう!

  If Range("E3") >= 10 Then
        MsgBox "割引"
        
    Else
         MsgBox "割引適用外"
         
    End If

合計が10未満なので、割引適用外というメッセージを出しました。

構造3 条件式が複数あるとき

続いて、条件式が複数ある場合を見ていきましょう。

If 条件式1 Then   
 条件式1が正しい時に行う動作
ElseIf 条件式2 Then 
 条件式2が正しい時に行う動作
Else
 いずれも正しくないときの動作
End If

ElseIfを追加すれば、条件式も増やせます。

わかりやすく言うと

If(もしも) 条件式1 Then(なら)    
 条件式1が正しい時に行う動作(をしてください)
ElseIf(そうでないなら) 条件式2 Then(はどうですか?) 
 条件式2が正しい時に行う動作(をしてください)
Else(それでも違うなら) 
 いずれも正しくないときの動作(をしてください)
End If

次に、具体的なマクロを見ていきましょう!

    If Range("E3") >= 10 Then
        MsgBox "50%割引"
        
    ElseIf Range("E3") >= 5 And Range("E3") < 10 Then
        MsgBox "30%割引"
         
    Else
        MsgBox "割引適用外"
       
    End If

合計が10個未満、5個以上なので、30%割引と出た!

Select Caseステートメント

Ifステートメントのほかに、Select Caseステートメントがあります。
構造は以下になります。

Select Case 判定値
 Case 条件1
  判定値が条件1の場合の処理
 Case 条件2
  判定値が条件2の場合の処理
 Case Else
  いずれにも該当しない場合の処理
End Select

Ifステートメントが条件が成立していたら、処理を分岐するのに対して、
Selectステートメントは条件の対象となる判定値によって処理を分岐します。

具体例を以下に出します。

Sub ShowDayMessage()
    Dim day As Integer
    day = Range("A1").Value ' ここで任意の数字を設定します (1-7の範囲)

    Select Case day
        Case 1
            MsgBox "今日は日曜日です。リラックスしましょう!"
        Case 2
            MsgBox "今日は月曜日です。新しい週の始まりです。頑張りましょう!"
        Case 3
            MsgBox "今日は火曜日です。やる気を出して仕事を進めましょう!"
        Case 4
            MsgBox "今日は水曜日です。週の半ばです。もうひと頑張り!"
        Case 5
            MsgBox "今日は木曜日です。週末が近づいています!"
        Case 6
            MsgBox "今日は金曜日です。週の最後の仕事日です。あと少し頑張りましょう!"
        Case 7
            MsgBox "今日は土曜日です。リフレッシュの時間です!"
        Case Else
            MsgBox "無効な日付です。1から7の範囲で入力してください。"
    End Select
End Sub

1~7までの指定した数字によって、メッセージが変わります。

おわりに

IFステートメントは、プログラミングの基本構造のひとつであり、あらゆるプログラミング言語で使用されます。条件に応じてプログラムの流れを制御するため、柔軟で複雑なロジックを実現することができます。今回の解説を通じて、IFステートメントの基本から実践的な使い方まで理解を深めていただけたでしょうか。

プログラミングの初学者にとって、IFステートメントを使いこなすことは大きなステップアップです。条件分岐を使うことで、プログラムの実行結果をコントロールし、より複雑なタスクを実現できるようになります。ぜひ、自分のプログラムに積極的に取り入れて、さまざまなシナリオを試してみてください。

今後もプログラミングの学習を続け、さらなるスキルアップを目指してください。どんなに小さなステップでも、積み重ねていくことで確実に成長していけます。頑張ってください!



この記事が気に入ったらサポートをしてみませんか?