条件分岐というと難しいですが、もし~だったら、そうでなかったらってよくありませんか?
そしてエクセル関数でも使う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のメッセージ文章をセルの値にリンクさせる簡単な方法
エクセルでメッセージボックスを利用して「〇〇しますか?」と問うた時に、「はい」「いいえ」を選択できますが、固定した文章ではなくセルの値によって質問内容が変更… -
ラベル
2つのセルの値を足し算など加減乗除してラベル名に表示させるVBA
ユーザーフォームに配置したラベルの文字をプロパティのキャプションで指定するのではなく、セルの値を取得して表示させたいことありませんか? そしてさらに、2つのセ… -
VBA関数
エクセルINT関数をVBAで小数点以下切り捨てを繰り返し処理方法
エクセル関数を使って小数点以下を切り捨てする作業をVBAを使って複数行一括処理したいと思ったことありませんか? Application.RoundDownと繰り返し処理を合わせて使え… -
VBA関数
もし~だったらの条件分岐エクセル関数IFをVBAで代用する方法
条件分岐というと難しいですが、もし~だったら、そうでなかったらってよくありませんか? そしてエクセル関数でも使うIF関数をエクセルVBAでも高頻度で使うので、基本…
紅葉スポット
-
透明度抜群の丸沼ダムのダム湖に紅葉景色が反射する秋らしい絶景へ
丸沼といえば丸沼高原スキー場が有名で、日光と沼田の中間に位置しているので、日光駅からでも沼田駅からも丸沼ダムへバスで紅葉を見に行くことができます。 特に東武鉄… -
長門峡の紅葉橋・竜宮淵へバスで紅葉も雪景色も楽しめる萩紅葉名所
日本の自然100選にも選ばれ紅葉シーズンには臨時シャトルバスも運行される長門峡(ちょうもんきょう)へは、JR山口線でも防長交通バスでも行くことができるので、全長5…. -
旧碓氷峠見晴台へバスで旧軽井沢駅から紅葉展望へ滞在時間20分
軽井沢と言えば長野県ですが、旧碓氷峠見晴台は長野県と群馬県の県境に位置するのですが、群馬県の観光スポットというよりは、長野県ですね。 ここ旧碓氷峠見晴台からは… -
伊香保温泉365段の石段の先に紅葉ライトアップされた河鹿橋絶景へ
石段と温泉街で古くから観光客が多く訪れる伊香保温泉には、群馬県の紅葉スポット人気1位・全国でもトップクラスの紅葉スポットがあります。 石段をゆっくりと登ってい… -
水上駅から利根川沿いに整備された遊歩道や諏訪峡のもみじ公園へ
水上駅の南側にバンジージャンプが体験できる有名な諏訪峡大橋には、もみじに囲まれたもみじ公園があり、ここから利根川沿いの紅葉を楽しむことができます。 そして整備… -
桜山公園へバスで群馬藤岡駅や本庄駅から冬桜と紅葉のコラボへ
なんと春と秋の年2回花見ができるので冬桜の名所として知られ、紅葉の見頃には冬桜と真っ赤な紅葉の紅葉が同時に見られることでも知られています。 また桜山公園ハイキ…