- ベストアンサー
VBAでif関数の処理を1行で記述したい
VBAで if関数の処理が複数ある場合、 if ** then (AAA と BBB) のように1行で記述したいのですが、可能でしょうか? また、Cだと、;で1行に追記できるのですが、 VBAで複数処理を1行で書く方法はあるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>if ** then (AAA と BBB) >のように1行で記述したいのですが、可能でしょうか? 以下のようにします。 if ** then AAA : BBB また、以下のようにすると、複数行に分けて書く事も出来ます。 if ** then AAA BBB end if 以下のようにelseも使えます。 if ** then AAA : BBB else CCC : DDD if ** then AAA BBB else CCC DDD end if 上記のように複数行にする時は、Cのように「インデント」をすると良いでしょう。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17070)
(1)IIF関数がエクセルVBAでも使えます (2)1行に2ステートメント書く場合は「:」(半角)で続けられます Sub test01() x = 1: y = 2 MsgBox x MsgBox y End Sub ーー http://officetanaka.net/excel/vba/function/IIf.htm 例 A1セルの値が、1の場合は男、それ以外は女と表示。 IIFの前に、「Application. 」は不要のようだ。 Sub test02() MsgBox IIf(Range("A1") = 1, "男", "女") End Sub
- kawais070
- ベストアンサー率52% (2242/4283)
Cの ; に相当するものは、VBAだと : です。 If ** Then A = 1: B = 2 と書くのと、 If ** Then A = 1 B = 2 End If と書くのは等価です。 個人的には、後者の書き方の方がプログラムが読みやすくていいなと思いますが…