![見出し画像](https://assets.st-note.com/production/uploads/images/51237732/rectangle_large_type_2_9e7f52891790f1c59f97ba2bde880604.jpg?width=1200)
Excel-VBAの意外と知られていない機能tips
元はstack overflow ネタです。個人的に、へーと思ったことをまとめます。
evaluate command の省略形
Sub example1()
Range("A1") = "example1"
' []を使うことで以下のように省略できます。
[A1] = "example1"
End Sub
要は、Evaluate("A1") = "example1"と同じです。
※そのため速度が若干遅くなります。私の環境で10000回繰り返すと1秒ほどの差になりました。
ちなみにWorksheetFunctionも省略できるようです。
Sub example2()
MsgBox [VLOOKUP(A1,A1,1,0)]
End Sub
列挙型Enum にMin, Max, Count
下記コードのように、Enum内にEnum自身の変数を使った変数を定義することができます。
※Min, Max, Count はあくまで例です。実際の名前は何でもいいです。
Private Enum MyEnum
Default = 0
First
Second
Third
[_Min] = Default
[_Max] = Third
[_Count] = [_Max] - [_Min] + 1
End Enum
Sub example3()
For i = MyEnum.[_Min] To MyEnum.[_Max]
Debug.Print i
Next i
Debug.Print MyEnum.[_Count]
End Sub
列挙型をプロジェクト内で多用していて、かつ、将来的に列挙型の拡張の可能性があれば使えそうですね。
この記事が気に入ったらサポートをしてみませんか?