No.3ベストアンサー
- 回答日時:
#2の回答者です。
クラスなどは馴染みが薄いかもしれませんが、順序立てて説明します。
VBEditor - 挿入 -クラスモジュール(C) クリックで、Class1 が出来ますから、そこに、クラスモジュール用のコードを貼り付けます。
次に、VBEditor - 挿入 -標準モジュール(M) で、標準モジュールが出来ますから、そこに、標準モジュール用のコードを貼り付けます。
一旦、そこで、Ctrl + S で、保存してしまってください。
次に、ブックを閉じて、再び開くか、そのまま、Auto_Open を実行してしまってください。(Aut_Open のところにカーソルを置いて、[F5] を押します)
後は、Alt + Q で、VBEditor を閉じます。
○プリンタのツールアイコンの[印刷] をクリックすれば、印刷した後に、メッセージボックスで、ページ数が出てきます。(今回は、ツールアイコンだけです。)
いきなり、[印刷] がちょっとまずいようでしたら、
Class のコードを
ActiveSheet.PrintOut Preview:=True
にしておいてください。
もし、クラスを書き換えたら、再び、標準モジュール上のAuto_Open を実行します。ふだんは、ブックを開けただけで、設定されますが、このマクロは、完全に出来上がったら、プロジェクトに簡単なロックをしてしまったほうがよいです。あまりインスタンス(Class1で設定したオブジェクト)が消えてしまうことはないのですが、時々、他のマクロで役に立たなくなることがあります。別に壊れたわけではないのですが、再びブックを開いてあげないといけません。
詳しい説明をありがとうございます!!
できました!!
感動しています!!
こんなぺーぺーの初心者におつきあいくださり、ありがとうございましたm(_ _)m
No.2
- 回答日時:
こんにちは。
こんなスタイルでよいと思いますね。
#1のおっしゃるAPIもありますが、イベントを新たに作らないといけませんね。私は、あまり新しいイベントを設ける方法が好きではないです。他のマクロに影響が出てくるように感じるからです。以下の方法は、ボタンのインスタンスを設ける方法で、本来、クリックイベントだから、全体の負担はありませんね。
ツールバーでクリックだから、基本的にはツールバーのみに、イベントを設ければよいのではないでしょうか?
設定は、保存して再起動か、Auto_Open を実行させます。
'------------------------------------
' 標準モジュール
'------------------------------------
Public myClass(0) As New Class1
'配列にする理由は、ボタンの格納数を増やす可能性があるから
Sub Auto_Open()
Call Class_Setting
End Sub
Private Sub Class_Setting()
With Application
'印刷ボタン
Set myClass(0) = New Class1
Set myClass(0).clsCntl = .CommandBars.FindControl(, 2521)
End With
End Sub
'------------------------------------
'クラスモジュール
'-------------------------------------
Public WithEvents clsCntl As CommandBarButton
Private Sub clsCntl_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
Dim lPage As Long
If Ctrl.ID = 2521 Then
CancelDefault = True
With ActiveSheet
lPage = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
ActiveSheet.PrintOut Preview:=False 'Trueはプレビューオン
MsgBox "印刷は:" & lPage & "枚でした。"
End With
End If
End Sub
回答ありがとうございます。
そのまま貼り付けしたのですが動かなくて修正するにもどこがエラーなのかもわからず、自分の不勉強と無能に泣いています。
せっかく回答いただいたのにすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Excel(エクセル) セルによって印刷するシートを変える方法 EXCEL-VBA 2 2022/08/01 20:48
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- プリンタ・スキャナー 印刷ができない 6 2022/04/01 20:47
- オープンソース OpenOffice Calc basic で印刷プレビューを表示する方法 1 2023/04/15 12:43
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
フォントについて教えてください!
みなさんの一番好きなフォントは何ですか? よく使うフォントやこのフォント好きだなあというものをぜひ教えてください!
-
【お題】マッチョ習字
【大喜利】 「精神を鍛えるため」にと、ジムから書初めの宿題を出されたマッチョたちが半紙に書いてきたこと
-
【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
「出身中学と出身高校が混ざったような校舎にいる夢を見る」「まぶたがピクピクしてるので鏡で確認しようとしたらピクピクが止まってしまう」など、 これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
-
我が家のお雑煮スタイル、教えて下さい
我が家のお雑煮スタイル、教えて下さい! (お汁)味噌汁系? すまし汁系? (お餅)角餅? 丸餅? / プレーンなお餅? あんこ餅?
-
Excel VBA の印刷後の判定
Excel(エクセル)
-
EXCEL VBA 印刷プレビューダイアログのボタン操作を判定したい
Visual Basic(VBA)
-
EXCEL VBA 印刷時にメッセージ表示
その他(Microsoft Office)
-
-
4
エクセルのマクロで印刷プレビューを閉じる方法
Excel(エクセル)
-
5
マクロを使って、シート印刷完了時にシートに”完了”マークをつけたいのですが
Visual Basic(VBA)
-
6
印刷ダイアログを表示させない方法
Visual Basic(VBA)
-
7
印刷をキャンセル
Excel(エクセル)
-
8
VBAで印刷の成功判定
Visual Basic(VBA)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
イベントプロシージャ 印刷が終わったあと…
Visual Basic(VBA)
-
11
条件によって印刷するシートを変える方法 EXCEL-VBA
Excel(エクセル)
-
12
【VBA】PDF出力に任意のファイル名前を付ける方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBでグローバル変数を宣言するには
-
vba userFormのSubを標準モジュ...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBA 『Call』で呼び出す...
-
【vba】フォームに書いてあ...
-
ベースモジュールって?
-
SendKeysの使い方について
-
VBA This Workbookモジュール...
-
VBAで旧字体を異字体に一括で変...
-
Excel VBAで、ユーザーフォーム...
-
Tomcat マイナーバージョン移行...
-
ユーザー定義関数をEXCELに常駐...
-
RaspberryPi Pico MicroPython...
-
Excel VBA 定義されたプロージ...
-
エクセルVBAでシートモジュール...
-
モジュールとクラスの違いって...
-
エクセルのユーザー関数が小文字に
-
Apache2 静的・動的モジュール...
-
VBAを使用してWordからExcelの...
-
ユーザー定義関数に#NAME?が返...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAで、ユーザーフォーム...
-
Excel VBAでリンク切れをチェッ...
-
vba userFormのSubを標準モジュ...
-
エクセルVBAでシートモジュール...
-
ユーザー定義関数に#NAME?が返...
-
モジュールの最大数はいくつな...
-
VBAで旧字体を異字体に一括で変...
-
VBでグローバル変数を宣言するには
-
VBAで別モジュールへの変数の受...
-
VBA This Workbookモジュール...
-
【vba】フォームに書いてあ...
-
モジュールとクラスの違いって...
-
SendKeysの使い方について
-
標準モジュールを削除したい。(...
-
エクセルVBA クラスモジュール...
-
Excel VBA 『Call』で呼び出す...
-
'Range'メソッドは失敗しました
-
グラフのX,Y座標を取得したい
-
Excel VBA 標準モジュール内で...
-
大量の標準モジュールを解放す...
おすすめ情報