- ベストアンサー
ある操作をすると実行するマクロ
Excel2003を使用しています。 あるファイルにシート名の一覧を作成するマクロを作っています。 例えば、印刷プレビューを実行すると、このシート名の一覧を作成するマクロを実行するようにできるでしょうか? もし、できるのであれば、どのようにしたらいいのでしょうか?手元にある参考書には、そのようなものは記載されていなかったので… ちなみに、印刷プレビューでなく、他の操作だったらできるというときはそれでも構いません。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Alt+F11でVisualBasicEditorを起動して ThisWorkBookを表示させて Private Sub Workbook_BeforePrint(Cancel As Boolean) '処理内容のマクロ End Sub これで印刷プレビュー及び印刷時にマクロが実行されます。
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。Wendy02です。 私のマクロは番外編かな?参考までに書いたまでです。 Sub SettingClass() は、Auto_Open()などで、Call してあげるか、直接、Auto_Open() に入れてあげます。 通常は、BeforePrint イベントでよいと思います。こちらで、問題がなければ、こちらで良いと思います。 クラスで設定すると、ほとんどのボタンに設定させることが出来ます。ただし、一部、上手く設定できないものもあります。ある条件で現れるメニューなどは、相互関係があるので、なぜか上手くいかないことがあります。 私は、Visual Basic Editor 側の画面を開けられたくない場合などに使用しています。プロテクトとは違う設定が出来ます。もちろん、この場合、ショートカット(Alt + F11)に対しては、OnKey メソッドで潰すという方法が取られます。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。Wendy02です。 >印刷プレビューを実行すると、このシート名の一覧を作成するマクロを実行するようにできるでしょうか? 印刷プレビューを起動とするマクロは、インスタンスを、プレビューボタンに設ければよいのですが、ただ、どんな内容のマクロなのでしょうか?例えば、このようにして出来ます。 '標準モジュール Sub SettingClass() 'クラスセッティング Static myClass1 As Class1 Set myClass1 = New Class1 'プレビューボタン Set myClass1.Btn = Application.CommandBars.FindControl(, 109) End Sub 'Class1 Private WithEvents myBtn As CommandBarButton Public Property Set Btn(ByVal Btn As CommandBarButton) Set myBtn = Btn End Property Private Sub myBtn_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean) Dim Sh As Worksheet Dim myList As String For Each Sh In ActiveWorkbook.Worksheets myList = myList & vbCrLf & Sh.Name Next Sh MsgBox myList End Sub
お礼
アドバイスありがとうございます。 ボタンにこんなことも設定できるんですね。 勉強になりました。
- hana-hana3
- ベストアンサー率31% (4940/15541)
ThisWorkBook のイベントに記載する事が可能です。 印刷と印刷プレビューの両方で実行されるので、印刷プレビューのみと言うことはできません。 Private Sub Workbook_BeforePrint(Cancel As Boolean) Call マクロ名 End Sub
お礼
回答ありがとうございました。 おかげさまで希望通りのことができました。
お礼
回答ありがとうございました。 おかげさまで希望通りのことができました。