![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.2ベストアンサー
- 回答日時:
#1のコードが二箇所間違っていましたので、訂正します。
Sub Auto_Open()
'ThisWorkbook_Open イベントでも可能
Call NewBtnSetting
'End If ←間違いです。
End Sub
Class モジュール
Private WithEvents NewBtn As Office.CommandBarButton
Public Property Set myNewBtn(ByVal myBtn As CommandBarButton)
Set NewBtn = myBtn
End Property
Private Sub NewBtn_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
'MsgBox Ctrl.Caption & "が押されました"
' mIndex = Control.Id 'mIndex は、グローバル変数 '←間違いです。
mIndex = Cntrl.Id
CancelDefault = True ''取りやめにする
End Sub
この回答へのお礼
お礼日時:2007/03/15 11:15
ご回答いただきましてありがとうございます。
返答が遅くなってしまって申し訳ありません。
回答者様のサンプルをもとに
何とか意に適う処理を作ることが出来ました。
本当にありがとうございました。
No.1
- 回答日時:
こんにちは。
以下のようにして判定します。ただし、印刷のショートカットキーまでは、設定はしておりません。そこまですると、返って不便になることがあります。
>Workbook_BeforePrintイベント内で処理を行っております。
>印刷ボタン押下時と、プレビューボタン押下時とで
>処理を分岐させたいのですが、
なお、特に、その区分けは、BeforePrint イベントとは関係がありません。クラス側でも、BeforePrint でも、どちらでも区分けは出来ます。Excel 2000 でも、他のバージョンでも、おそらくは、Id は、変わらないはずです。印刷プレビューは、109, 印刷ボタンは、2521, 印刷ダイアログコマンド(メニューのファイル-印刷)は、4 です。
Excel 2000で、テストはしております。
'---------------------------------------------
標準モジュール
Private ClassBtns(2) As New Class1
Public mIndex As Integer
Sub NewBtnSetting()
Dim i As Integer
With Application
Set ClassBtns(0) = New Class1
Set ClassBtns(0).myNewBtn = .CommandBars("Standard").FindControl(, 2521) '印刷
Set ClassBtns(1) = New Class1
Set ClassBtns(1).myNewBtn = .CommandBars("Standard").FindControl(, 109) '印刷プレビュー
Set ClassBtns(2) = New Class1
Set ClassBtns(2).myNewBtn = .CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)").Controls("印刷(&P)...") '印刷
End With
End Sub
Sub Auto_Open()
'ThisWorkbook_Open イベントでも可能
Call NewBtnSetting
End If
'---------------------------------------------
Class モジュール
Private WithEvents NewBtn As Office.CommandBarButton
Public Property Set myNewBtn(ByVal myBtn As CommandBarButton)
Set NewBtn = myBtn
End Property
Private Sub NewBtn_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
'MsgBox Ctrl.Caption & "が押されました"
mIndex = Control.Id 'mIndex は、グローバル変数
'CancelDefault = True ''取りやめにする
End Sub
'---------------------------------------------
'ThisWorkbook モジュール
Private Sub Workbook_BeforePrint(Cancel As Boolean)
MsgBox mIndex
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) Excel のヘルプ文の印刷 1 2023/06/07 11:17
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Excel(エクセル) 【Excel】エクセルの1シートが2枚に分割されてしまうので印刷プレビューを押して閉 4 2022/12/13 13:12
- プリンタ・スキャナー 印刷出来ません...エプソン EP302 トラブルシューティングについて 7 2022/07/16 10:20
- プリンタ・スキャナー キャノンmp490プリンター【エラー番号5400】で【プリンタートラブルが発生しました。電源を入れ直 2 2023/07/24 17:45
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- プリンタ・スキャナー 緊急です。コピーも印刷もできません。 EP-802Aです。コピーしようとして印刷ボタン押しても何も印 6 2023/07/19 14:59
- プリンタ・スキャナー Wordで作った宛名ラベルを印刷しようと思って、プリンターの上のところにある、手差しトレイ的なところ 3 2022/11/17 18:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDFファイルがカラー印刷できない
-
【EXCEL】【VBA】空欄は飛ばし...
-
手紙で字が汚い時の添え書きは?
-
A3のPDFをA4プリンター...
-
PDFの印刷が途中で終わってしま...
-
PDF、プリントスクリーンがいき...
-
プリンターの設定「印刷部数」...
-
PVC(ポリ塩化ビニール)の有害...
-
メールの画像が印刷できません。
-
Wordで複数枚印刷しようと...
-
お助けくださいませ。
-
エクセルでコメント印刷すると...
-
ワードなどのB6を原寸でB5...
-
OutLookメールの一部分だけを印...
-
Twitterの投稿を印刷コピーしたい
-
特定のファイルのみ印刷がされ...
-
booking com.で予約された方 ...
-
エクセルを使って名簿を連続印...
-
テプラー:KING JIM SR720 連...
-
シリアルナンバーを付けて印刷
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PDFファイルがカラー印刷できない
-
【EXCEL】【VBA】空欄は飛ばし...
-
特定のファイルのみ印刷がされ...
-
これなんで 今まで普及してなか...
-
メールの画像が印刷できません。
-
手紙で字が汚い時の添え書きは?
-
PDF印刷 一枚だけカラーにする方法
-
OutLookメールの一部分だけを印...
-
パソコンでPDFが印刷できない、...
-
テプラー:KING JIM SR720 連...
-
PDFファイルを印刷すると黒くなる
-
エクセルを使って名簿を連続印...
-
エクセルでコメント印刷すると...
-
バックグラウンドとは?何度再...
-
Webぺージの印刷が途中まで...
-
会社に提出する地図(自宅から...
-
PVC(ポリ塩化ビニール)の有害...
-
印刷の行間が飛んで印刷される
-
PDFの印刷が途中で終わってしま...
-
Wordで複数枚印刷しようと...
おすすめ情報