今回は、メニューバーにボタンを追加して、そこからプログラムを実行してみます。
VBAエディターの左側のプロジェクトウィンドウの中のThis WorkBookの部分をクリックすると、
このEXCELブックをOpenした時や、終了する時のサブルーチンを書く事ができます。
実際には、下記コーディングをすると、メニューバーへボタンを追加されるので、そのボタンを押すと、プログラムが実行されます。
Option Explicit
'ブック(EXCELファイルを開く時に実行されるサブルーチン)
Private Sub Workbook_Open()
'エラーがあっても無視して処理を続行するモード
On Error Resume Next
'変数の定義
Dim wCtrl As Variant, wCtrl1 As Variant, wCtrl2 As Variant, wCtrl3 As Variant, wName As String
'マクロ実行時に、シート表示が更新されないようにするモードにセット
Application.ScreenUpdating = False 'False→偽、True→真
'メニューバーの定義
Application.CommandBars("Worksheet Menu Bar").Controls("マクロサンプル").Delete '一旦、該当メニューバーを削除
Set wCtrl1 = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup) 'メニューバーの追加
With wCtrl1
.Caption = "マクロサンプル" '該当メニューバーに名前をセット
End With
'メニューバーの中のコマンドバーを定義
Set wCtrl = wCtrl1.Controls.Add(Type:=msoControlButton)
With wCtrl
.Caption = "計算" '該当コマンドーバーに名前をセット
.Style = msoButtonCaption '該当コマンドーバーのスタイルをセット
.OnAction = "計算" '該当コマンドーバーの実行サブルーチン名をセット
.Visible = True '該当コマンドーバーの表示
End With
'メニューバーの中のコマンドバーを定義
Set wCtrl = wCtrl1.Controls.Add(Type:=msoControlButton)
With wCtrl
.Caption = "罫線"
.Style = msoButtonCaption
.OnAction = "罫線"
.Visible = True
End With
'メニューバーの中のコマンドバーを定義
Set wCtrl = wCtrl1.Controls.Add(Type:=msoControlButton)
With wCtrl
.Caption = "色づけ"
.Style = msoButtonCaption
.OnAction = "色づけ"
.Visible = True
End With
'マクロ実行時に、シート表示が更新されるようにするモードにセット
Application.ScreenUpdating = True
End Sub
'ブック(EXCELファイルを閉じる時に実行されるサブルーチン)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
If Cancel = True Then
Exit Sub
End If
'メニューバーの削除
Application.CommandBars("Worksheet Menu Bar").Controls("マクロサンプル").Delete
End Sub
メニューバーの右側に、マクロサンプルという文字ボタンが増えていますね!
この技は、知らない人が多いですが、結構、便利です。
これを応用すると、マクロ専用のEXCELファイルを作成しておき、それを実行すると、他のEXCELを開いてもメニューバーはそのままなので、いろいろと便利です!
それでは!
0 件のコメント:
コメントを投稿