ExcelマクロVBA技術解説 | 実は奥が深いIfステートメント | Excelマクロの問題点と解決策、エクセル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に記述した方が理解しやすい場合も多いです。

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

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

読みやすい
解り易い


これにつきます。

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





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

最終行・最終列の取得方法(End,CurrentRegion,SpecialCells,UsedRange)
ユーザー定義関数の作り方
セルの値について(Value,Value2,Text)
文字列でのセル参照と文字列の計算式について(Evaluate,INDIRECT)
文字列置換の基本と応用(Replace)
空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)
空白セルを正しく判定する方法2

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

データクレンジングと名寄せ|ExcelマクロVBA技術解説(10月20日)
SUMIFの間違いによるパフォーマンスの低下について|エクセル関数超技(6月17日)
条件式のいろいろな書き方:TrueとFalseの判定とは|ExcelマクロVBA技術解説(6月15日)
空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)

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

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
4.変数とデータ型(Dim)|ExcelマクロVBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
6.定数と型宣言文字(Const)|ExcelマクロVBA入門
7.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
8.マクロって何?VBAって何?|ExcelマクロVBA入門
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.ひらがな⇔カタカナの変換|エクセル基本操作



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

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


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

    ↑ PAGE TOP