重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

いつもありがとうございます。初心者につき、わかりにくい文章かもしれませんが、宜しくお願い致します。

Excel2003で改ページを自動で行うマクロをこちらの過去の質問を参考にしながら作成しました。
勤め先の同僚にも配布しようと思い、どうせならマクロ実行が簡単なようにと、ユーザー定義のツールバー作成のマクロも作成。ここまでは無事に出来たのでが・・・
さらにファイルを開いた時に自動でツールバーが作成マクロを実行するように Sub Auto_Open()を用いて無事に成功、しかし一旦終了して再度このファイルを開くと

実行時エラー ’5’:
プロシージャの呼び出し、または引数が不正です。

というエラーが出てしまいます。一回目に開いた時にSub Auto_Open()によって作成したツールバー作成のマクロを再度実行しようとするのが原因だと思うのですが、これを回避する方法があるのでしょうか?

ちなみにエラーのダイヤログの終了ボタンを押せば、他のマクロは問題なく作動しますし、
本来の目的は別ファイルの改ページを、自動に行うためのマクロの実行をツールバーにて簡単に行うためのもので、このエラーが出たからといって何ら支障は無く、他のファイルからこの改ページのマクロを実行してもエラーは出ず、本来の目的は達成しおり問題は無いのですが、気分的にスッキリしません。何卒宜しくお願い致します。

下記をご参照ください。(実際は改頁マクロは複数あり)

Sub A改ページ()
Dim PB As HPageBreak
Dim idx As Long
Const tCol As String = "A" '改頁判断する列
With ActiveSheet
For idx = 3 To .Cells(65536, tCol).End(xlUp).Row
If .Cells(idx, tCol) <> .Cells(idx - 1, tCol) Then
ActiveSheet.HPageBreaks.Add Before:=.Cells(idx, tCol)
End If
Next idx
End With
End Sub

Sub ツールバー作成()
Dim myBar As CommandBar, myButton As CommandBarButton
Set myBar = CommandBars.Add
myBar.Name = "改頁マクロ"
Set myButton = myBar.Controls.Add
myButton.OnAction = "A改ページ"
myButton.FaceId = 80
myBar.Visible = True
End Sub

Sub Auto_Open()
ツールバー作成
End Sub

A 回答 (1件)

Auto_Openイベントにツールバーを消すマクロも入れておけば問題ないかと。



Sub Auto_Open()
On Error Resume Next
Application.CommandBars("改頁マクロ").Delete
On Error GoTo 0
ツールバー作成
End Sub
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
無事に解決出来ました。
誠にありがとうございます。

お礼日時:2013/11/21 14:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!