見出し画像

VBAの組み込み定数をデータ型として使う

VBAにもデータ型があります。例えば下記のように。

Dim userName As String
Dim i As Long
Dim dueDate As Date
Dim fileExists As Boolean

データ型は宣言しないこともできますが、基本はデータ型を明示するべきで、Variant型は原則使用しないことをお勧めします。

なお、あまりよく知られていないと思うのですが、データ型にはVBAで用意されている組み込み定数(列挙体)もデータ型として利用することが可能です。

Sub sb赤枠四角図形挿入()
   Application.ScreenUpdating = False
       Call sb赤枠透明図形挿入(msoShapeRectangle)    '図形形状:角が丸い四角
   Application.ScreenUpdating = True
End Sub
 
Sub sb赤枠楕円図形挿入()
   Application.ScreenUpdating = False
       Call sb赤枠透明図形挿入(msoShapeOval)  '図形形状:楕円
   Application.ScreenUpdating = True
End Sub
 
Public Sub sb赤枠透明図形挿入(図形形状 As MsoAutoShapeType)
'マニュアル作成作業でよく使用する赤枠・背景透明の図形を挿入する(図形の種類は引数で指定)
   With ActiveCell
        ActiveSheet.Shapes.AddShape _
             (Type:=図形形状, _
              Left:=.Left, Top:=.Top, Width:=200, Height:=125).Select
   End With
   Selection.ShapeRange.Fill.Visible = msoFalse
   With Selection.ShapeRange.line
         .Visible = msoTrue
         .ForeColor.RGB = RGB(255, 0, 0)
         .Weight = 5  '太さ
         .Transparency = 0.3  '透明度
    End With
End Sub

ここでは、MsoAutoShapeTypeというオートシェイプの形状を示す定数をデータ型として利用しています。
データ型としてVBAの組み込み定数(列挙体)を使用することで、Subプロシージャ等を呼び出す際に、引数についてインテリセンスが働き、コードの作成が速くなります。

もしよろしければサポートをお願いします。今後の執筆のかてにします。