- ベストアンサー
マクロの組み方について
エクセル97で、マクロを組みたいと思い 質問します 教えて下さい。 現在、マクロを組んでいます。 仮に「印刷A」と云うマクロがあります。 シート1の「A1」のセルに「1」であれば「印刷A」を実行し シート1の「A1」のセルに「1」以外の数字になれば、印刷しない と云うマクロは、どのようにすればいいのでしょうか?? お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2さんの方法は、印刷を実行した時にのみ自動で実行されるマクロです。マクロ一覧には出てきません。 流れとしては、ユーザーが印刷を実行すると、#2さんのマクロが自動的に実行され、 シート1の「A1」のセルに「1」であれば「印刷A」を実行し シート1の「A1」のセルに「1」以外の数字になれば、印刷しない となります。 もし、マクロ実行→「シート1」の「A1」のセルの値による分岐→「印刷A」実行 or「印刷A」を実行しない と言う流れでマクロを組みたいのならば、下記コードを、「印刷A」のあるモジュールに貼り付けて下さい。 もしシート名が「シート1」でない場合は、変更して下さい。 Sub tesuto() If Sheets("シート1").Range("A1").Value = 1 Then Call 印刷A End If End Sub
その他の回答 (2)
- TTak
- ベストアンサー率52% (206/389)
失礼、#1マクロ例に"Call 印刷A"の記述が漏れていました。 それから、このコードは、"ThisWorkbook"のモジュールに記入してください。 Private Sub Workbook_BeforePrint(Cancel As Boolean) If Range("A1").Value <> 1 Then Cancel = True Else Call 印刷A End If End Sub
お礼
ありがとうございました 又 何かありましたら アドバイス お願いします。
補足
早々の回答有難うございます。 上記の指定通り、作成したのですが、ツール→マクロをしても マクロ一覧には、すでに私の作成したマクロしか、表示してません あと、何が設定もれしているのでしょうか???
- TTak
- ベストアンサー率52% (206/389)
BeforePrintイベントで、セルA1の値が1以外なら、パラメータCancelにTrueを入れます。この方法は、マクロが有効でないと使えません。また、印刷プレビューにも適用されるので、セルA1の値が1以外なら、プレビューもできません。 マクロが無効な場合にも対応する方法はいくつかありますが、まずは一般的な方法だけ書いておきます。 Private Sub Workbook_BeforePrint(Cancel As Boolean) If Range("A1").Value <> 1 Then Cancel = True End If End Sub
お礼
ありがとうございました 私が しりたかったのは、まさしく wildcard さんの 記述通りでした。 たすかりました。 又 何かありましたら アドバイス お願いします。