ExcelのマクロでIF ELSE文を使用し、条件分岐させる

IFとは、条件により処理を分岐させることができる命令文です。マクロとIF文を組み合わせると、さらに複雑なことができ便利になります。

ここでは、IF ELSE ENDIFを使用します。

IFが真の場合、ELSEまでの処理を行い、偽の場合、ELSEからENDIFの間の処理を行います。



Homeに戻る > Excel マクロのTipsへ

マクロの作成

リボンの[開発]タブ~コードグループの[マクロの記録]をクリックします。
開発タブが表示されていない場合は、「Excelの開発タブを表示する方法」を参照し表示させてください。
[マクロの記録]をクリック

マクロのダイアログボックスが開きます。
マクロ名を入力し[OK]ボタンをクリックします。
マクロ名を入力し[OK]ボタンをクリック

今回は「1日から7日」か「月から日」までを、マクロで自動的に入力できるようにします。

1.B3セルに移動し、「1日」を入力し、B9セルまでオートフィルします。
2.C3セルに移動し、「月」を入力し、C9セルまでオートフィルします。
3.[記録終了]をクリックします。
「1日から7日」か「月から日」までを、マクロで自動的に入力

これでマクロが作成できたので、IF ELSE文を追加します。

マクロにIF ELSEを追加する

リボンの[マクロ]をクリックし、マクロ ダイアログボックスを開きます。

1.上で作成したマクロを選択します。
2.[編集]ボタンをクリックします。
マクロ ダイアログボックス

VBE画面が開き、マクロのVBAコードが表示されます。
マクロのVBAコード

Sub 日付か曜日()
'
' 日付か曜日 Macro
'

'
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "1日"
    ActiveCell.Characters(2, 1).PhoneticCharacters = "ヒ"
    Selection.AutoFill Destination:=Range("B3:B9"), Type:=xlFillDefault
    Range("B3:B9").Select
    Range("C3").Select
    ActiveCell.FormulaR1C1 = "月"
    ActiveCell.Characters(1, 1).PhoneticCharacters = "ゲツ"
    Selection.AutoFill Destination:=Range("C3:C9"), Type:=xlFillDefault
    Range("C3:C9").Select
    Range("C10").Select
End Sub

下のように、IF ELSE文を追加します。
IFからELSEまでが、「1日から7日」を入力する部分で、ELSEからEND IFまでが「月から日」までを入力する部分です。
IF ELSE文を追加

Sub 日付か曜日()
'
' 日付か曜日 Macro
'

'
    If Range("A1") = "" Then
        Range("B3").Select
        ActiveCell.FormulaR1C1 = "1日"
        ActiveCell.Characters(2, 1).PhoneticCharacters = "ヒ"
        Selection.AutoFill Destination:=Range("B3:B9"), Type:=xlFillDefault
        Range("B3:B9").Select
    Else
        Range("C3").Select
        ActiveCell.FormulaR1C1 = "月"
        ActiveCell.Characters(1, 1).PhoneticCharacters = "ゲツ"
        Selection.AutoFill Destination:=Range("C3:C9"), Type:=xlFillDefault
        Range("C3:C9").Select
        Range("C10").Select
    End If
    
End Sub

IF ELSE文を追加したマクロを実行する

A1セルに何も入力されていない場合、「1日から7日」が表示されました。
A1セルに何も入力されていない場合

A1セルに何か入力した場合、「月から日」が表示されました。
A1セルに何か入力した場合

このように、マクロとIF文を組み合わせると、複雑な処理が簡単にできるようになります。
例えば、偶数日はシート1を印刷、奇数日はシート2を印刷などが自動的にできるようになります。

Homeに戻る > Excel マクロのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved