PowerPointでVBAを使っていると、「この条件ならこうしたい」「それ以外ならこうしたい」といった場面が多々ありますよね。そんなときに活躍するのが、If…Then…Elseステートメントです。今回は、初心者の方でも安心して使えるように、わかりやすく解説します。
VBAのIf…Elseステートメントとは?
VBAのIf…Elseステートメントは、条件によって処理を分けるための命令です。たとえば、「スライド番号が1ならタイトルを変更する」「スライド番号が2なら背景色を変える」といった処理を自動で行うことができます。
基本の書き方If…Then…Else
まずは、最も基本的な構文から見てみましょう。
Sub SampleMacro()
If 条件 Then
' 条件がTrueのときの処理
Else
' 条件がFalseのときの処理
End If
End Sub
この構文では、「条件」がTrueの場合に「Then」以降の処理が実行され、Falseの場合は「Else」以降の処理が実行されます。
実際の例スライド番号に応じた処理
PowerPointのスライド番号によって、異なる処理を行う例を見てみましょう。
Sub SlideAction()
Dim slideIndex As Integer
slideIndex = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
If slideIndex = 1 Then
' スライド1ではタイトルを変更
ActivePresentation.Slides(1).Shapes.Title.TextFrame.TextRange.Text = "ようこそ!"
ElseIf slideIndex = 2 Then
' スライド2では背景色を変更
ActivePresentation.Slides(2).FollowMasterBackground = msoFalse
ActivePresentation.Slides(2).Background.Fill.BackColor.RGB = RGB(255, 255, 0)
Else
' その他のスライドでは何もしない
End If
End Sub
このコードでは、スライド番号が1の場合にタイトルを変更し、スライド番号が2の場合に背景色を黄色に変更します。それ以外のスライドでは何も処理を行いません。
ElseIfを使って複数の条件を判定
複数の条件を判定したい場合は、ElseIfを使います。これにより、条件を順番にチェックし、最初にTrueとなった条件の処理が実行されます。
Sub EvaluateGrade()
Dim score As Integer
score = 75
If score >= 80 Then
MsgBox "優秀です!"
ElseIf score >= 60 Then
MsgBox "良い成績です!"
Else
MsgBox "もう少し頑張りましょう。"
End If
End Sub
この例では、スコアが80以上なら「優秀です!」、60以上なら「良い成績です!」、それ以外なら「もう少し頑張りましょう。」とメッセージボックスが表示されます。
Elseを使って条件に合わない場合の処理
Elseを使うことで、すべての条件に合わない場合の処理を指定できます。
Sub CheckDay()
Dim day As String
day = "月曜日"
If day = "土曜日" Or day = "日曜日" Then
MsgBox "週末です!"
Else
MsgBox "平日です。"
End If
End Sub
このコードでは、dayが「土曜日」または「日曜日」の場合に「週末です!」と表示し、それ以外の場合は「平日です。」と表示します。
よくある質問や疑問
Q1: If文の条件式に複数の条件を組み合わせるにはどうすれば良いですか?
複数の条件を組み合わせるには、論理演算子「And」や「Or」を使用します。
If score >= 60 And score <= 80 Then
MsgBox "合格です!"
End If
この例では、スコアが60以上80以下の場合に「合格です!」と表示されます。
Q2: ElseIfの順番は重要ですか?
はい、ElseIfの順番は重要です。上から順番に条件が評価され、最初にTrueとなった条件の処理が実行されます。
Q3: Elseの後に何も書かない場合、どうなりますか?
Elseの後に何も書かない場合、その条件に合わない場合は何も処理が行われません。
まとめ
VBAのIf...Elseステートメントを使うことで、PowerPointのスライドに応じた柔軟な処理を自動化できます。初心者の方でも、基本的な構文を覚えることで、さまざまな条件分岐を実現できるようになります。ぜひ、実際にコードを書いて試してみてください。
他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。



コメント