ブログ主が仕事や個人的に学んだPC系・プログラミング系(VBAとかHTML)について書いていく備忘録ブログ。
※ここで記載する内容はあくまで「個人的に」上手くいく内容です。ご使用には十分注意してください
Posted by 若槻風亜 - 2013.07.27,Sat
(対象)Excel VBA
(確認)Excel2003
今回は自分で作るツールバーについてです。
マクロを作成した時、実行するために一番簡単なのは
VBAの画面でF5かF8を押すことですね。
その次はシートにボタンを作ってマクロを登録すること
でしょうか。
でもこう思うことはありませんか?
「どこのシートにいてもマクロを実行出来るようにしたい」
と。
ツールバーを使用すればそんな悩みは即解決してしまいますね。
作り方としては以下の通りになります。
----------------------------------
'============================================
'ツールバーの設置
'============================================
Sub ToolBarOn()
Dim myBar As CommandBar 'ツールバー
Dim MyButton As CommandBarButton 'ツールバーのボタン
Dim CB As Variant 'ツールバーの確認用
Dim BCaption(1) As String '表示文字列
Dim BAction(1) As String '登録するマクロ
Dim BText(1) As String 'ボタンにカーソル当てた時の説明文
Dim BFace(1) As Integer 'ボタンに使うアイコン
Dim I As Long '登録数分回すFor-Next用
'■表示文字列の設定
BCaption(0) = " 表示文字1 "
BCaption(1) = " 表示文字2 "
'■登録アクション(マクロ)設定=プロシージャ名
BAction(0) = "ACT1"
BAction(1) = "ACT2"
'■説明文の設定
BText(0) = "ボタンにカーソル当てた時の説明が入るよ"
BText(1) = "ボタンにカーソル当てた時の説明が入るよ"
'■フェイスIDの設定(一覧)
BFace(0) = 50
BFace(1) = 300
'■すでに同名のツールバーが存在する場合は削除
Set myBar = CommandBars.Add
For Each CB In CommandBars
If CB.Name = "動作" Then
CommandBars("動作").Delete
Exit For
End If
Next
'■ツールバーの名前を設定
myBar.Name = "動作"
myBar.Position = msoBarTop
'■ツールバー作成(I = 登録するボタンの数)
For I = 1 To 2
Set MyButton = myBar.Controls.Add
With MyButton
.BeginGroup = True ’ボタンとボタンの境界線
.Style = msoButtonIconAndCaptionBelow '※
.Caption = BCaption(I - 1)
.OnAction = BAction(I - 1)
.TooltipText = BText(I - 1)
.FaceId = BFace(I - 1)
End With
Next
'■ツールバーの設置
myBar.Visible = True
End Sub
'============================================
'ツールバーの排除
'============================================
Sub ToolBarOff()
Dim myBar As CommandBar
Dim CB As Variant
For Each CB In CommandBars
If CB.Name = "動作" Then
CommandBars("動作").Delete
Exit For
End If
Next
End Sub
----------------------------------
これを実行するとツールバーが作成されます。
以前ご紹介した「ブックの開閉時の動作」に組み合わせると、
開いた時にツールバーを設置し、閉じる時に削除するという
動作が可能になります。
ちなみに、プログラム中の「※」部分についてですが、
ここを変更するとツールバーの表示のされ方が変わります。
下図がその結果です。
もしかしたらやり方がおかしくて上手くなってないところも
あるかもしれませんが。
以上、ツールバーを作ってみようでした。
(確認)Excel2003
今回は自分で作るツールバーについてです。
マクロを作成した時、実行するために一番簡単なのは
VBAの画面でF5かF8を押すことですね。
その次はシートにボタンを作ってマクロを登録すること
でしょうか。
でもこう思うことはありませんか?
「どこのシートにいてもマクロを実行出来るようにしたい」
と。
ツールバーを使用すればそんな悩みは即解決してしまいますね。
作り方としては以下の通りになります。
----------------------------------
'============================================
'ツールバーの設置
'============================================
Sub ToolBarOn()
Dim myBar As CommandBar 'ツールバー
Dim MyButton As CommandBarButton 'ツールバーのボタン
Dim CB As Variant 'ツールバーの確認用
Dim BCaption(1) As String '表示文字列
Dim BAction(1) As String '登録するマクロ
Dim BText(1) As String 'ボタンにカーソル当てた時の説明文
Dim BFace(1) As Integer 'ボタンに使うアイコン
Dim I As Long '登録数分回すFor-Next用
'■表示文字列の設定
BCaption(0) = " 表示文字1 "
BCaption(1) = " 表示文字2 "
'■登録アクション(マクロ)設定=プロシージャ名
BAction(0) = "ACT1"
BAction(1) = "ACT2"
'■説明文の設定
BText(0) = "ボタンにカーソル当てた時の説明が入るよ"
BText(1) = "ボタンにカーソル当てた時の説明が入るよ"
'■フェイスIDの設定(一覧)
BFace(0) = 50
BFace(1) = 300
'■すでに同名のツールバーが存在する場合は削除
Set myBar = CommandBars.Add
For Each CB In CommandBars
If CB.Name = "動作" Then
CommandBars("動作").Delete
Exit For
End If
Next
'■ツールバーの名前を設定
myBar.Name = "動作"
myBar.Position = msoBarTop
'■ツールバー作成(I = 登録するボタンの数)
For I = 1 To 2
Set MyButton = myBar.Controls.Add
With MyButton
.BeginGroup = True ’ボタンとボタンの境界線
.Style = msoButtonIconAndCaptionBelow '※
.Caption = BCaption(I - 1)
.OnAction = BAction(I - 1)
.TooltipText = BText(I - 1)
.FaceId = BFace(I - 1)
End With
Next
'■ツールバーの設置
myBar.Visible = True
End Sub
'============================================
'ツールバーの排除
'============================================
Sub ToolBarOff()
Dim myBar As CommandBar
Dim CB As Variant
For Each CB In CommandBars
If CB.Name = "動作" Then
CommandBars("動作").Delete
Exit For
End If
Next
End Sub
----------------------------------
これを実行するとツールバーが作成されます。
以前ご紹介した「ブックの開閉時の動作」に組み合わせると、
開いた時にツールバーを設置し、閉じる時に削除するという
動作が可能になります。
ちなみに、プログラム中の「※」部分についてですが、
ここを変更するとツールバーの表示のされ方が変わります。
下図がその結果です。
もしかしたらやり方がおかしくて上手くなってないところも
あるかもしれませんが。
以上、ツールバーを作ってみようでした。
PR
Comments
Post a Comment
プロフィール
HN:
若槻風亜
性別:
女性
職業:
会社員
趣味:
創作、プログラミング
自己紹介:
仕事や個人で学んだことをまとめておきたかったがために備忘録ブログを立ち上げました。
あくまで自分が学んだこと・自分が出来たことなので、ご覧くださる場合は参照レベルでお願いします。
あくまで自分が学んだこと・自分が出来たことなので、ご覧くださる場合は参照レベルでお願いします。
ブログ内検索
カレンダー
最新記事
(12/31)
(12/30)
(03/27)
(11/09)
(10/07)
P R
最新トラックバック
コガネモチ
フリーエリア
Template by mavericyard*
Powered by "Samurai Factory"
Powered by "Samurai Factory"