If flg thenと記載のあるコードの意味
人が書いたコード(特にネットでコピペする場合等)、このコードの書き方って何?って思うケースがあります。
'(例) Private Sub sample() Dim flg As Boolean: flg = True If flg Then MsgBox "フラグはTrueです" End If End Sub
If flg thenはIf flg = True Then同様の動作
If flg then の書き方はRangeの.Valueが省略できるのと同様に
Boolean型をIF文でTrue判定する場合は= True の部分を省略が可能です。
逆にBoolean型をIF文でFalse判定する場合はIf Not flg Then とする事で、= Falseを省略が可能です。
Private Sub sample() '(例)下記はBoolean型がTrueかどうか判定するコード分です。どちらも結果は同じです。 Dim flg As Boolean: flg = True If flg Then Debug.Print "flgはTrueです" If flg = True Then Debug.Print "flgはTrueです" flg = False '(例)下記はBoolean型がFalseかどうか判定するコード分です。どちらも結果は同じです。 If Not flg Then Debug.Print "flgはFalseです" If flg = False Then Debug.Print "flgはFalseです" End Sub
注意点
- =Trueをつけてもつけなくてもどちらでもいいです。
大事なのは省略されても結果が一緒だという事を理解する事です。 - 最初は誰もがコピペで見様見真似でコード作成します。正常動作後、コードを見直すのは大事です。
- 上記がプログラマーの癖になるので、つけるならつける、つけないならつけないと統一すべきです。
マクロはプログラム開発の敷居が低いです。その為、属人化しやすい事がデメリットです。
上記部分をルールを決める事でチームの誰が見てもすぐわかるコードを書くべきです。
コメント
英語の文章を書ける人なら、コードも英語で読んでしまうと思うので、True/Falseを入れておきます。自分もそうします。
私も同意見です。
コードが長い=見づらいではないと思います。
最適なコードを作っていきたいですね。