• ベストアンサー

VBAでif関数の処理を1行で記述したい

VBAで if関数の処理が複数ある場合、 if ** then (AAA と BBB) のように1行で記述したいのですが、可能でしょうか? また、Cだと、;で1行に追記できるのですが、 VBAで複数処理を1行で書く方法はあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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)
回答No.2

(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)
回答No.1

Cの ; に相当するものは、VBAだと : です。 If ** Then A = 1: B = 2 と書くのと、 If ** Then A = 1 B = 2 End If と書くのは等価です。 個人的には、後者の書き方の方がプログラムが読みやすくていいなと思いますが…

関連するQ&A