条件分岐というと難しいですが、もし~だったら、そうでなかったらってよくありませんか?
そしてエクセル関数でも使うIF関数をエクセルVBAでも高頻度で使うので、基本からご紹介します。
条件によって処理を振り分けるIFステートメント
基本的な考え方は「IF関数」と全く一緒なので、書き方だけをマスターすればいろいろなVBAコードに応用できます。
ここでは「和暦西暦変換対応カレンダー」を作った時に、黒色文字で日付を表しますが土日祝日だったら赤色文字にするとい例を簡単に記載しています。
1つの条件を満たした時だけ処理を実行する
下の図のセルD12の値は「0」になっています。セルD13の値のように「0」以外の数字もあります。
D列の値はカレンダーの関係上祝日は月によって替わるので、基本は「0」にしておいて祝日の時だけ文字列表示しています。
考え方としては、『もしセルD5の値が「0」だったら、文字色を黒色にする』という、1つの条件を満たした時だけ処理を実行するVBAコードを使っています。
この場合、IFステートメントを使いこのような式になります。
IF 条件式 Then
処理
End If
実例の式をVBAコードで書くとこのようになります。
Private Sub CommandButton1_Click()
If Range(“D12”).Value = 0 Then
CommandButton1.ForeColor = RGB(0, 0, 0)
End If
End Sub
- コマンドボタン1がクリックされたら
- もしセルD12の値が「0」だったら
- コマンドボタン1の文字色を黒色にする
- Ifステートメント終了
- マクロ終了
これで、条件に合った時だけ処理をして、合わない時は何もしないということができるようになります。
1つの条件を満たした時の処理と満たさなかった時で処理を振り分ける
次に、IF関数と同じように「もし~だったら、○○、そうでなかったら××」をVBAコードで書いていきます。
下の図は住所録を抜粋した画像で、「更新済」と「未更新」を振り分けています。
画像にはありませんが、セルP2に基準日が入力されています。
この基準日以降に手続きをしていれば更新「済」、そうでなければ「未更新」と処理を振り分けています。
この場合、IFステートメントを使いこのような式になります。
IF 条件式 Then
処理1
Else
処理2
End If
先ほどと違うのは、Elseの後に満たさなかった時の処理が加わっています。
Private Sub CommandButton1_Click()
If Range(“AV2”).Value >= Range(“P2”) .Value Then
Range(“AX2”).Value = “済”
Else
Ranbe(“AX2”).Value = “未更新”
End If
End Sub
- コマンドボタン1がクリックされたら
- セルAV2の値がセルP2の値より大きかったら
- セルAX2の値を「済」にする
- そうでなかったら
- セルAX2の値を「未更新」にする
- Ifステートメント終了
- マクロ終了
エクセルのワークシートで使うIF関数同様にVBAでも使用頻度が高いので、応用しながらマスターしましょうね。
関連記事
-
VBA関数
エクセルVBAのメッセージ文章をセルの値にリンクさせる簡単な方法
エクセルでメッセージボックスを利用して「〇〇しますか?」と問うた時に、「はい」「いいえ」を選択できますが、固定した文章ではなくセルの値によって質問内容が変更… -
VBA関数
エクセルINT関数をVBAで小数点以下切り捨てを繰り返し処理方法
エクセル関数を使って小数点以下を切り捨てする作業をVBAを使って複数行一括処理したいと思ったことありませんか? Application.RoundDownと繰り返し処理を合わせて使え… -
ラベル
2つのセルの値を足し算など加減乗除してラベル名に表示させるVBA
ユーザーフォームに配置したラベルの文字をプロパティのキャプションで指定するのではなく、セルの値を取得して表示させたいことありませんか? そしてさらに、2つのセ… -
VBA関数
もし~だったらの条件分岐エクセル関数IFをVBAで代用する方法
条件分岐というと難しいですが、もし~だったら、そうでなかったらってよくありませんか? そしてエクセル関数でも使うIF関数をエクセルVBAでも高頻度で使うので、基本…
紅葉スポット
-
妙義山パノラマパーク紅葉へバスで上州富岡駅から滞在時間35分
山が多い群馬県の中でも、赤城山・榛名山とともに妙義山を合わせて上毛三山と呼ばれる群馬県代表の山で、日本三大奇勝でもあり、岩肌が切り立った景観が特徴でもありま… -
フリーきっぷで行く日光や栃木県内の紅葉名所や穴場スポット22選
関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは坂は大渋滞なのに休日ともなると日光駅周辺から渋滞して全く動かない状態に… -
八ッ場ダムの近くにある鹿飛橋と白絹の滝へ吾妻渓谷の紅葉へ
何かと話題の群馬県の八ッ場ダムの近くにある吾妻渓谷は、吾妻川の水が侵食して深い峡谷を作った為に、自然にできた谷深い峡谷となっています。 その吾妻側の周りの木々… -
9月中旬から始まる尾瀬ヶ原の草紅葉へ日光駅や沼田駅からバスで行く
まだまだ残暑厳しい夏日が続く東京ですが、ひと足早く奥日光の更に山奥の尾瀬ヶ原では、9月中旬ごろから湿原の草がオレンジ色・黄金色・赤色と移り変わる姿を見ることが… -
温泉の匂いが漂い白濁した湖!日光湯ノ湖・兎島の絶景ポイントへ
日光東照宮から始まっていろは坂・明智平・中禅寺湖・竜頭の滝・戦場ヶ原と奥日光を進んで行った最終に奥日光湯元温泉があり、東武鉄道のフリーパス「まるごと日光・東… -
透明度抜群の丸沼ダムのダム湖に紅葉景色が反射する秋らしい絶景へ
丸沼といえば丸沼高原スキー場が有名で、日光と沼田の中間に位置しているので、日光駅からでも沼田駅からも丸沼ダムへバスで紅葉を見に行くことができます。 特に東武鉄…