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を入れておきます。自分もそうします。
私も同意見です。
コードが長い=見づらいではないと思います。
最適なコードを作っていきたいですね。