ExcelマクロVBA技術解説 | 実は奥が深いIfステートメント | ExcelマクロVBAの問題点と解決策、エクセルVBAの技術的解説



最終更新日:2013-02-26

実は奥が深いIfステートメント


プログラムと言うものは、

条件により処理する

これにつきます。

つまり、この条件が一番問題となります。

そして、その記述をするものが、

Ifステートメントになります。


If 条件式 Then
  条件式が真(True)の場合の処理
Else
  条件式が偽(False)の場合の処理
End If


条件式は、 真(True)か偽(False)を評価する数式または文字列式を指定します。

例えば、

If A = B Then

  A = B の場合の処理
Else
  A <> B の場合の処理
End If

ここでの、A = Bは、真(True)か偽(False)を返します。

その結果がTrueならThen以下を処理、FalseならElse以下を処理するのです。

では、

Dim A As Boolean
・・・
If A = True Then
  A = True の場合の処理
Else
  A = False の場合の処理
End If

特に問題はなさそうですが、

If A = True Then

実はこれは、かなり無駄なんですね。

AはTrueかFalseな訳ですから、

If A Then

これだけでも良いのです。

よくあるのは

If IsNumeric(A) = True Then

IsNumeric(A)が、真(True)か偽(False)を返しますので

If IsNumeric(A) Then

これだけで良い事になります。

もちろん、 = True を書いても問題ないですし、

むしろ、初心者には解り易いかもしれません。

否定形の場合は

If IsNumeric(A) = False Then

ではなく

If Not IsNumeric(A) Then

このように書いた方が、英文っぽくて格好よくないですか(笑)

上記の場合は、どちらを書いても良いとは思います。

むしろ無理に否定形にしないで、

If IsNumeric(A) Then
Else
  ・・・
End If


このようにElseに記述した方が理解しやすい場合も多いです。

問題は、同じ条件の書き方でも、何通りも書き方があるという点です。

では、どのような書き方が良いかというと、

読みやすい
解り易い


これにつきます。

読みやすく、解り易いコードが一番良いですね。





同じテーマ「マクロVBA技術解説」の記事

プログラミングの基本〜ロジックの組み立て
論理積(And)論理和(Or)と真(True)偽(False)の判定
If条件式のいろいろな書き方:TrueとFalseの判定とは
VBAにおける括弧()の使い方
VBAにおけるピリオドとカンマとスペースの使い方
変数とプロシージャーの命名について
文字列置換の基本と応用(Replace)
データクレンジングと名寄せ
ForとIfのネストこそがVBAの要点

新着記事 ・・・新着記事一覧を見る

VBAを定型文で覚えよう|ExcelマクロVBA技術解説(3月26日)
VBAスタンダード試験対策まとめ|MOS VBAエキスパート対策(3月16日)
ユーザーフォームとメニューの操作|MOS VBAエキスパート対策(3月14日)
ファイルの操作|MOS VBAエキスパート対策(3月14日)
ユーザーフォームの各種イベント|Excelユーザーフォーム(3月13日)
レジストリの操作|MOS VBAエキスパート対策(3月12日)
変数と配列|MOS VBAエキスパート対策(3月12日)
Colorプロパティの設定値一覧|VBA技術解説(3月12日)
APIとOLEオートメーション|MOS VBAエキスパート対策(3月11日)
エラーへの対処|MOS VBAエキスパート対策(3月10日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.ひらがな⇔カタカナの変換|エクセル基本操作
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.定数と型宣言文字(Const)|ExcelマクロVBA入門
9.とにかく書いて見よう(Sub,End Sub)|VBA入門
10.繰り返し処理(For Next)|ExcelマクロVBA入門



  • >
  • >
  • >
  • 実は奥が深いIfステートメント

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。





    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ

    ↑ PAGE TOP