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)
実行時にトラップ可能なエラー番号一覧

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

スプレッドシートが非常に遅い、高速化するには|Google Apps Script入門(1月17日)
画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)
表示の固定|Google Apps Script入門(12月24日)
グラフ|Google Apps Script入門(12月21日)
入力規則|Google Apps Script入門(12月13日)
並べ替え|Google Apps Script入門(12月12日)
メモの挿入・削除と改行文字|Google Apps Script入門(12月6日)
リンクの挿入・編集・削除|Google Apps Script入門(12月6日)
セルに数式を入れる|Google Apps Script入門(12月1日)

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

1.RangeとCellsの使い方|ExcelマクロVBA入門
2.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.ひらがな⇔カタカナの変換|エクセル基本操作
8.CSVの読み込み方法|ExcelマクロVBAサンプル集
9.変数とデータ型(Dim)|ExcelマクロVBA入門
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



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

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


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

    ↑ PAGE TOP