こんにちは、ヒガシです。
VBAを書いていると、IF文で条件に当てはまるときは何もしないでElseの時だけ処理を書きたい、なんてシーンに地味に遭遇しますよね。
そんなときに、
あれ?何もしない処理ってどうするんだっけ?
となる人は多いと思います。
ということでこの記事ではそんなシーンでの対処法を2つご紹介していきます。
IF文中に何もしない方法①何も書かない
まずは一つ目の対処法をご紹介していきます。
基本的にIF文中で条件に当てはまるときに何もしたくないのであれば、コードにも何も書かなくてOKです。
以下の例で実践してみましょう。
Sub if_continue1()
For i = 1 To 10
If i <= 5 Then
Else
Cells(i, 1) = i
End If
Next
End Sub
iが5以下の時はIF文中に何も記載していないことがわかると思います。
実際に実行してみましょう。
問題なく実行することができました。
ちょっとコード的に違和感はありますが、何も書かなくてOKなんですね。
IF文中に何もしない方法②GoTo文でジャンプする
やはり何も書かないということに違和感があるという方向けに、GoTo文を使った方法をご紹介しておきます。
以下がそのサンプルコードです。
Sub if_continue2()
For i = 1 To 10
If i <= 5 Then
GoTo AAA
Else
Cells(i, 1) = i
End If
AAA:
Next
End Sub
基本的にはiが5以下の時に「AAAという場所まで行け」、という処理と着地点であるAAAという場所を追記してあげているだけです。
これなら条件に当てはまったときにIF文をスキップする様子がわかりやすいですね。
なお、ここで紹介したGoTo文については以下の記事で詳細解説していますので、こちらもあわせてご覧ください。
おわりに
というわけで今回はIF文中に条件に応じて何もしない方法を2つご紹介しました。
GoTo文は慣れてないとなかなか少し難しいですが、要所で使えるスキルなのでぜひ習得しておきましょう。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
ぜひ他の記事ものぞいてみてください。
コメント