[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロで作ったメニューバーが増えていく』(あや)
XP 2003
過去に教えていただいた [[20110405160117]] についてです。
おかげさまで、作ったマクロをアドインを使ってメニューバーに追加して使えています。
ここで…時々なのですが エクセル起動時にこのメニューバーが複数出てきたり、 エクセルを×で閉じて開き直すと、 メニューバーがひとつずつ追加されていくような形になってしまうことがあります。
毎回ではなく時々です。
addinsFile.xlaの中身 --- Option Explicit
Private Sub Workbook_Open()
On Error Resume Next
Dim myBar As CommandBar, myButton As CommandBarButton Set myBar = Application.CommandBars.Add(Position:=msoBarTop)
'オートフィルタを表示・非表示 Set myButton = myBar.Controls.Add(Type:=msoControlButton)
myButton.OnAction = "オートフィルタを表示非表示" myButton.Caption = "オートフィルタを表示非表示" myButton.FaceId = 94
myBar.Visible = True
On Error GoTo 0
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("ユーザー設定 1").Delete
On Error GoTo 0
End Sub
Module1 の中身 ------ Sub オートフィルタを表示非表示()
On Error Resume Next
Selection.AutoFilter
End Sub
とりあえずはユーザ設定で削除していけば良いのですが、 なんとか解消したく質問させていただきましたm(_ _)m
異常終了した時は、 Private Sub Workbook_BeforeClose(Cancel As Boolean) が実行されないから、残骸が残りますね。 その残骸を確認もしないで、闇雲にツールバー等を作っているから、 ダブりどころか3つ4つと増えていくかもしれないですね。 BJ
開くとき: On Error Resume Next Application.CommandBars("オートフィルタ").Delete '★追加 Set myBar = Application.CommandBars.Add(Position:=msoBarTop) myBar.Name = "オートフィルタ" '★追加
閉じるとき: On Error Resume Next Application.CommandBars("オートフィルタ").Delete '★名前修正
BJさん ありがとうございました。
マナさん ありがとうございました。 追加と名前修正で対応しましたm(_ _)m ご丁寧に教えていただき、助かりました。
(あや)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.