• ベストアンサー

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

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

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答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

  • EXCEL2000で作成したマクロが2002で実行できない。

    EXCEL2000で作成したマクロがEXCEL2002で実行できずに、 困っています。 ファイルは開けるのですが、マクロが実行できないのです。 セキュリティーレベルも低にしてもだめです。 どうすれば、2000で作成したマクロを2002で実行できるようになるでしょうか? よろしくお願いします。

  • 【Excel】マクロでメッセージを表示する

    Excel2003を使用しています。 Aという名前の一覧表を作成するマクロがあります。 マクロAは『Sheet1』を選択した状態で正しく実行されますので、うっかり他のシートを選択した状態で、マクロAを実行してしまうと、一覧表が正しく作成されません。 こうなった場合、誤って作成された一覧表を消去して、もう一度やり直せば済むことなのですが、『Sheet1』を選択していない状態でマクロAを実行しようとすると、何かメッセージ(例えば、“Sheet1を選択後、実行してください”みたいな)が表示されるようにすることはできるでしょうか? 参考書にダイアログボックスにメッセージを表示させるマクロが載っていましたので、マクロAにそのようなコードを追加する(?)ことで可能かな??と思い、質問させていただきました。 よろしくお願いします。

  • マクロ実行ボタンがコピー出来ない

    Excel2013を使っています。OSはWIN7です。 とあるマクロを実行する為のボタンが組み込まれているシートがあり、 月が変わるごとに、(そのマクロボタン付きの)「テンプレート」と名前を付けているシートを「移動またはコピー」からコピーして、同じファイルないに新しくシートを付け足していく方法でシートを増やしていっていました。 先月までは上記の方法でまったく問題なく、「テンプレート」というシートと同じ内容のシートがマクロボタン付きでコピー(同じファイル内に新しく作成)出来ていたのですが、急に出来なくなりました。 とても困っています。 どうしたらいいのでしょうか?

  • Excelでマクロ実行をボタンで

    WinXP、Excel2002の超初心者です。 今、作成済みのマクロがあります。 これをシートに貼ったボタンで実行するにはどうすれば良いですか? 宜しくお願いします。

  • よろしくお願いいたします。Excel2003で印刷等のマクロが入った5

    よろしくお願いいたします。Excel2003で印刷等のマクロが入った5MBほどファイルです。古いパソコンWin2000のExcel2003上では順調に稼働していました。それを新しいパソコンVista版office2007付・DELL STUDIO にExcel2003をインストールして実行したところ、印刷したいプレビューの画面にはなりますが、そこから印刷のボタンを押してデータが送信されているようなのですが、保留ドキュメント「ゼロ」のままで、印刷が実行されません。(先のファイルではマクロ以外に通常の範囲指定でのプレビューや印刷は行われています。)慌てているもので支離滅裂な表現お許し下さい。皆様のお力をお借りして原因理由をお教えいただければ幸いです。

  • 【Excel】複数のマクロをまとめることはできますか?

    Excel2003を使用していて、マクロを勉強しています。 先日、ここで質問させていただきながら、ある一覧表を作成するために マクロを作りました。 このマクロを実行してできた一覧表に、さらにこういう操作をしたい というのがいくつかでてきて、その度にマクロを作ったり マクロの記録を使用したりして、結局、この一覧表に関するマクロが 5つもできてしまいました。 そこで、質問なのですが、この5つのマクロをまとめることって できるのでしょうか?

  • エクセルマクロでご教示ください

    エクセルで作られたデータファイルに対し、ある操作を施して上書き保存するというマクロを作りました。 そのマクロを走らせるとファイル名を聞いてきまして、そこでファイル名を入力してやれば、ある操作を施したあと 自動的に上書き保存までしてくれるのですが、対象ファイルが複数個あると、ひとつ実行したあとまたひとつ ファイル名を入れて、またそれが終ったら次のファイル名を・・・というように、ひとつひとつ実行しなければならない というのが現状です。 これを次のように改良したいのですが、どうすればいいのでしょうか? 1.マクロを立ち上げる。 2.処理する複数のファイルが入っている「フォルダ」を選ぶ。  (一覧表示のウィンドウが出てきて、その中で「フォルダ」を選ぶ) 3.そのフォルダの中に入っているエクセルファイル全てに対し、既に作成済みのマクロを順次実行する。 というものです。 よろしくお願いします。

  • VBA ある位置にある全てのxlsに対してマクロ実行

    あるフォルダ内の全てのxlsファイルに対して命令を実行するマクロを作成しています。 命令したいファイル群の、ブック名はバラバラ。シートは一つのみ。ファイル数は定まっていません。 ブック名や数が定まっているファイルに対して命令を実行するマクロなら作成したことがあるのですが、今回のようにあればある分だけ、命令を実行させるにはどのように記述すればいいのでしょうか? どうかよろしくお願いします。

  • マクロが実行できない!

    EXCEL2003で作成したマクロを2000で実行するとエラー表示がでてしまいます。 互換性がないのでしょうか? わかるかたおりましたらお助けください!

  • MS Excel2003のマクロについて

    現在、エクセル2003のマクロを作成しています。 そこで、どうしても作成できないことが2点あります。 シート数は、60シート前後を予定しています シート名は、バラバラです。 1.アクティブシート(マクロのボタンがあるシート)以外の全シートの "C6:D36" をクリアしたい。  苦戦して作成すると、アクティブシートの"C6:D36"がクリアされ  使い物になりませんでした。 2.アクティブシート(マクロのボタンがあるシート)以外の全シートを印刷プレビューしたい。  どうしても、アクティブシートも含まれて印刷プレビューされてしまいました。 例題をあげて、回答いただきたいです。 よろしくお願いいたします。 

専門家に質問してみよう