Excel IF関数 IF Then構文

Excel関数とマクロVBAでの記述として、それぞれにIF、条件分岐があります。IF関数の使い方とVBAでのIF Then構文の使い方とを比較してみました。

IF関数

ExcelのIF関数は、よく使われる代表的な関数です。

=IF(論理式,真の場合,偽の場合)

貸借対照表です。
016macro1

4月~6月(合計)の列に入力されている数値ですが、すべてプラス表示されています。これを「負債」や「純資産」の勘定の場合には、-表示させたいときなどにこのIF関数を使用すると便利です。

=IF(B2=”[資産]”,C2,C2*-1)
論理式 =もし、セルB2の値(区分)が[資産]の場合
真の場合=B2の値が[資産]のときは、C2の値を+表示の値を
偽の場合=B2の値が[資産]以外のときは、C2の値を-表示の値を

では、マクロVBAで記述する場合には、どうなるでしょうか。

マクロVBA IF Then構文

016macro2

赤枠で囲まれた部分です。ほかにも色々、気になるところがあると思いますが、無視してください。iは数字の2と考えてください。

マクロVBAでIFを使った構文は、
IF 論理式 Then
  真の場合
Else
  偽の場合
End if
になります。IF関数と同じ処理をIF Then構文を使って処理するとこのような方法があります。

If Cells(i, 2) = “[資産]” Then 論理式=もし、セルB2の値(区分)が[資産]の場合
Cellsは、セルを行と列の数字で指定するプロパティです。iは2行目、列は2列目(B列)を表しています。

Cells(i, 5) = Cells(i, 3) 真の場合=B2の値が[資産]のときは、C2の値を+表示の値をE2へ入力

Else
Cells(i, 5) = Cells(i, 3) * -1 偽の場合=B2の値が[資産]以外のときは、C2の値を-表示の値をE2へ入力

End If =分岐終了。

IF関数がわかればIF Then構文もわかると思います。ただ、IF Then構文は、セルの指定などを工夫しなければなりません。For Next構文などと組み合わせる必要が出てきます。For Next構文がわかるとマクロVBAがだんだん面白くなってきます。