● 目的のツールバーが存在するかをチェックして無ければ自動再作成する方法(イメージとテキストのボタンで)
Excel2000では、オリジナルのツールバーを作っても何故か、何かの拍子にその存在自体が消えてしまうことがあります。
そのたびに、エンドユーザーさんが困ってしまうので、もし既存のツールバーが、その存在自体が消えてしまっていたら自動的に再生成するプログラムをご紹介します。
ファイルが開くとき(標準モジュールの「auto_open()」プロシージャ)などに書いておくと良いと思います。
以降に挙げた例、『 「ミニ編集」ツールバーが存在するかをチェックして再作成するプログラム 』は、「ミニ編集」という名前を付けた小さなツールバーが、もし消えてしまっていたら自動的に再生成する例です。
Excel2003までなら使えるかもしれません。
2007以降のリボンには使えません。
※後日判明・・・2007以降のリボンに対しても使えました。バージョン2000との互換性を保つためなのか、2007以降のリボンの中には、バージョン2000形式のツールバーを、VBAプログラムにて自動生成することができてしまいました(試してみたら)。その場合は「アドイン」というタブがリボンに勝手にでき、その中にバージョン2000形式のツールバーができてしまいます。ですので、リボンの中に「バージョン2000~2003のVBAコードで自動作成したツールバー」が存在する場合は、2007以降でも、以降に挙げたプログラムコードが使えます。
参考記事
「Excel2010のリボンに、Excel2000と同じプログラムコードのコピペでユーザー設定ボタンを生成する。(一応ツールバー単位で)」
https://euc-access-excel-db.com/tips/ct08_exceltruebasic/ct080860_vba_basic/tool-bar-auto-make-excel
★ 「ミニ編集」ツールバーが存在するかをチェックして再作成するプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
'################################################################ '「ミニ編集」ツールバーが存在するかをチェックして再作成 'ボタンの表示形式を「イメージとテキスト」にする。 '################################################################ Sub CmdBarCelHennsyuuChkAndAdd01() Dim myBar As CommandBar, i As Long, C For Each C In CommandBars If C.Name = "ミニ編集" Then '「ミニ編集」という名前のツールバーが存在したら '何もしないでプログラム自体を終わる Exit Sub Else End If Next C 'ループを最後まで実行して「ミニ編集」ツールバーが見つからなかった時はここを通るので '以下のメッセージを発して、「ミニ編集」ツールバーを再生成する。 MsgBox "「ミニ編集」ツールバーが消えてしまっているようですので再作成します。" 'ツールバーの再生成 Set myBar = CommandBars.Add myBar.Name = "ミニ編集" 'ツールバーの名前を「ミニ編集」に設定します myBar.Controls.Add ID:=19 '「ミニ編集」ツールバーに「コピー」ボタンをを追加します myBar.Controls(1).Style = msoButtonIconAndCaption 'ボタンのスタイルはアイコンとテキストの両方。 myBar.Controls.Add ID:=370 '「ミニ編集」ツールバーに「値の貼り付け」ボタンをを追加します myBar.Controls(2).Style = msoButtonIconAndCaption myBar.Visible = True End Sub |
- 投稿タグ
- ExcelVBA