ある条件に一致したシートのみ印刷するというマクロを作成しました。
そのマクロをメニューバーから実行させると、うまく実行されるのですが、
マクロボタンを作って、そのボタンをクリックすると、きちんと実行されないのです。
何が間違っているのでしょうか。
図形で四角形を描く → 図形上で右クリック → マクロの登録 → 登録したいマクロを選択
このようにマクロボタンを作りました。他のマクロは、ボタンをクリックしても動くのに、印刷するマクロのみ、動かないのです。メニューバーからの実行は、動くのに・・・
なぜでしょうか。
どうぞよろしくお願い致します。
No.3ベストアンサー
- 回答日時:
冗長ですが、
Sub 納品書印刷2()
Dim myRow As Long
Dim AKS As Worksheet
Set AKS = ActiveSheet
For myRow = 7 To Cells(Rows.Count, 18).End(xlUp).Row
If Cells(myRow, 18).Value = "●" Then
Sheets(Cells(myRow, 17).Value).Select
calculate
ActiveWindow.SelectedSheets.PrintOut
AKS.Select
End If
Next myRow
End Sub
としてみるとか(地震ないけど)
他には繰り返し構文の前にプレビューを入れてみるとか
No.2
- 回答日時:
印刷されない納品書の「●」マークですが、後ろに空白が入ってたりしませんよね?
正しく入力するか、次のようにTrim関数で前後の空白を除去して判定すれば大丈夫だと思います。
しかし、最初の質問から趣旨がずれているような気がするのですが…。
Sub 納品書印刷()
Dim myRow As Long
For myRow = 7 To Cells(Rows.Count, 18).End(xlUp).Row
If Trim(Cells(myRow, 18).Value) = "●" Then
'Sheets(Cells(myRow, 17).Value).PrintOut '←この行、間違ってませんか?
Cells(myRow, 17).PrintPreview '←正しくはこうかな?
End If
Next myRow
End Sub
●の後ろに空白は入っておりません。
'Sheets(Cells(myRow, 17).Value).PrintOut '←この行、間違ってませんか?
Cells(myRow, 17).PrintPreview '←正しくはこうかな?
↓
間違っていないです。印刷プレビューを表示したいのではなく、印刷をしたいからです。また、このように記述すると、「納品書1」という文字のみが印刷プレビューされます。
「納品書1」シート全部を印刷したいので、記述は間違っていないように思います。
色々と親身になって回答頂き、ありがとうございました。
No.1
- 回答日時:
「きちんと実行されない」とは、具体的にどのような状況になるのでしょうか?(エラーが出るとか、結果がおかしいとか)
特定のシートがアクティブでないと正しく動かないようなマクロを組んでいる訳ではないですよね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/22 11:43
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/11 11:47
- Excel(エクセル) 【マクロ】マクロボタンをクリックしたら、セルに OK と表示される 3 2023/08/18 07:37
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/03/01 15:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Word(ワード) Word 2016のマクロを Word 2021のWordでキー動作させたい 3 2023/04/12 16:14
- Excel(エクセル) マクロを教えてください 3 2023/07/31 21:57
- Excel(エクセル) マクロを教えてください 2 2023/07/30 23:05
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
自分独自の健康法はある?
こうしていると調子がいい!みたいな自分独自の健康法、こだわりはありますか?
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
【Excel VBA】マクロをボタンに登録したがエラーで実行できない
Visual Basic(VBA)
-
【VBA】ボタンで実行するとうまく作動しません。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
EXCELのセルへ、デジタル時計を...
-
マクロ 実行ボタンを押さずに...
-
Excelを開いた時に表示さ...
-
エラーになってないのにVBA...
-
UWSCの簡単なキーマクロなので...
-
Excel VBA のdebug(F8キー) が...
-
Wordで「原稿用紙○枚」を換算す...
-
エクセル グラフの軸の最小値最...
-
複数ファイルにある特定のシー...
-
エクセルで複数のシートをまと...
-
ワードからエクセルへ貼り付け...
-
モジュール内のマクロを全て実...
-
マクロ実行後元に戻すことは
-
Excelのマクロを実行中に、ダウ...
-
エクセルのマクロでワードのマ...
-
ワードで画像を自動で挿入する方法
-
PowerPointでクリックしたオブ...
-
Wordの画面を左右にスクロール...
-
エクセルでマクロ実行中に任意...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
Excel VBA のdebug(F8キー) が...
-
エラーになってないのにVBA...
-
Excelを開いた時に表示さ...
-
EXCELのセルへ、デジタル時計を...
-
ワードからエクセルへ貼り付け...
-
複数ファイルにある特定のシー...
-
エクセルのマクロ機能で前のシ...
-
Wordの画面を左右にスクロール...
-
エクセル グラフの軸の最小値最...
-
モジュール内のマクロを全て実...
-
Excelマクロでオプションボタン...
-
TeraTermのマクロについて
-
VBAでEXCELに埋め込んだPDFを開...
-
EXCEL2000 VBA マクロ実行中に...
-
マクロボタンをある条件の時に...
-
ワードで画像を自動で挿入する方法
-
開いているフォルダを全て閉じ...
-
Wordで「原稿用紙○枚」を換算す...
おすすめ情報
画像の添付シート「発行シート」の右側に「納品書1」「納品書2」・・があって、●印がついているシート名のみ印刷するマクロを作成しました。
Sub 納品書印刷()
Dim myRow As Long
For myRow = 7 To Cells(Rows.Count, 18).End(xlUp).Row
If Cells(myRow, 18).Value = "●" Then
Sheets(Cells(myRow, 17).Value).PrintOut
End If
Next myRow
End Sub
「発行シート」にある青色のマクロボタンをクリックすると、4シート分印刷されないといけないのに、2シート分しか印刷されないのです。
メニューバーからマクロを実行すると、きちんと4シート分印刷されるのです。
何がおかしいのでしょうか。すみません。どうぞよろしくお願い致します。