• ベストアンサー

ある操作をすると実行するマクロ

Excel2003を使用しています。 あるファイルにシート名の一覧を作成するマクロを作っています。 例えば、印刷プレビューを実行すると、このシート名の一覧を作成するマクロを実行するようにできるでしょうか? もし、できるのであれば、どのようにしたらいいのでしょうか?手元にある参考書には、そのようなものは記載されていなかったので… ちなみに、印刷プレビューでなく、他の操作だったらできるというときはそれでも構いません。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

Alt+F11でVisualBasicEditorを起動して ThisWorkBookを表示させて Private Sub Workbook_BeforePrint(Cancel As Boolean) '処理内容のマクロ End Sub これで印刷プレビュー及び印刷時にマクロが実行されます。

rx-z5815
質問者

お礼

回答ありがとうございました。 おかげさまで希望通りのことができました。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。Wendy02です。 私のマクロは番外編かな?参考までに書いたまでです。 Sub SettingClass() は、Auto_Open()などで、Call してあげるか、直接、Auto_Open() に入れてあげます。 通常は、BeforePrint イベントでよいと思います。こちらで、問題がなければ、こちらで良いと思います。 クラスで設定すると、ほとんどのボタンに設定させることが出来ます。ただし、一部、上手く設定できないものもあります。ある条件で現れるメニューなどは、相互関係があるので、なぜか上手くいかないことがあります。 私は、Visual Basic Editor 側の画面を開けられたくない場合などに使用しています。プロテクトとは違う設定が出来ます。もちろん、この場合、ショートカット(Alt + F11)に対しては、OnKey メソッドで潰すという方法が取られます。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。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

rx-z5815
質問者

お礼

アドバイスありがとうございます。 ボタンにこんなことも設定できるんですね。 勉強になりました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

ThisWorkBook のイベントに記載する事が可能です。 印刷と印刷プレビューの両方で実行されるので、印刷プレビューのみと言うことはできません。 Private Sub Workbook_BeforePrint(Cancel As Boolean) Call マクロ名 End Sub

rx-z5815
質問者

お礼

回答ありがとうございました。 おかげさまで希望通りのことができました。

関連するQ&A