マクロ初心者です。
ピボットテーブルでマクロを使って連続印刷をしようと思いました。
一応やってみて連続で印刷は出来たのですが番号がないときエラーになってしまします。
たとえば"562"という番号がないときエラーになって止まってしまいます。
番号がないときは飛ばして印刷するにはどのようにしたらよいでしょうか?
よろしくお願いします。
Sub 連続印刷()
'
' 連続印刷 Macro
'
'
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").ClearAllFilters
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").CurrentPage = _
"562"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").ClearAllFilters
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").CurrentPage = _
"947"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").ClearAllFilters
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").CurrentPage = _
"950"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").ClearAllFilters
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").CurrentPage = _
"952"
End Sub
No.1ベストアンサー
- 回答日時:
>たとえば"562"という番号がないときエラーになって止まってしまいます。
この状況が発生する原因としては、(今回掲示されたマクロ以前に他のマクロで?)「毎回イチイチ新しくピボットテーブルレポートを作成し直している」事が考えられます。
ピボットテーブルでは、新しいデータは元データシートに「追加し・入れなおして」その時まで作ってあったピボットテーブルを「更新」して使います。
こういう作り方をすることで、562が「今回のリストにはたまたま含まれていない」場合でもマクロがエラーになることは無くなります。まぁ、562は選べて、中身(該当品目や合計)は空っぽという状態になりますが。
で。
>番号がないときは飛ばして印刷するにはどのようにしたらよいでしょうか?
具体的な対応方法としては、今回あなたが「どーしたいのか」に応じてやり口はいろいろ変わります。
1.今のマクロを使い続けたい(毎回ピボットテーブルを新たに作りたい)
1a)今現在の元データに562などが含まれているかいないかをイチイチ調べて印刷するかどうか決める
1b)今現在の元データに含まれているコードを全部拾って印刷してしまう
2.今のやり方は改めて、一回作ったピボットテーブルレポートを使いまわすやり方に変える
こちらはまぁでも、今の時点では多分お好みじゃないと思うので割愛します。
別の方策として、今のマクロを極力そのまま残して「エラー処置」だけで回避してみます。
Sub 連続印刷()
'
' 連続印刷 Macro
'
dim flg as boolean
on error goto errhandle
flg = true
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").ClearAllFilters
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").CurrentPage = "562"
if flg then ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
flg = true
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").ClearAllFilters
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").CurrentPage = "947"
if flg then ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
flg = true
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").ClearAllFilters
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").CurrentPage = "950"
if flg then ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
flg = true
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").ClearAllFilters
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コンポコード").CurrentPage = "952"
if flg then ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
exit sub
errhandle:
flg = false
resume next
End Sub
丁寧な回答ありがとうございます。
マクロ初心者なので本当に助かります。
ご指摘の通り毎回ピボットテーブルを作ってやっていたのでその時によって番号がなかったりあったりするのでコードを手作業で消していました。
さっそく試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) excel ピポットテーブルの更新について 1 2022/05/13 16:12
- プリンタ・スキャナー 2台のプリンターでそれぞれ異なる様式の帳票を印刷したい。 2 2022/09/06 10:07
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
TVリモコン設定(SMILE KIDS)
-
Excelシート上で右クリックがで...
-
excelのオートフィルターのリス...
-
access2003 クエリSQL文に...
-
ExcelVBAで「Shift_JIS(MS932)...
-
UWSCでMOUSEORG関数が上手く処...
-
1日に1人がこなせるプログラム...
-
VBA 税率を判定表する方法を教...
-
特定行の背景色を変えたいのですが
-
JANコードとPOSコードは同じ?
-
JavaScriptの定数名が取り消し...
-
コンボボックスの複数列表示に...
-
VBでの「もぐらたたきゲーム作...
-
Excel VBA素人です。VBAで図形...
-
C#で入力可能なカウントダウン...
-
Excelマクロは今後止めたほうが...
-
ホワイトノイズの生成コードに...
-
先ほど、回答者様によって教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
過剰なオブジェクト指向脳から...
-
1、Rstudioで回帰直線を求める...
-
1日に1人がこなせるプログラム...
-
Exel VBA 別ブックから該当デ...
-
access2003 クエリSQL文に...
-
pythonにてseleniumを使うも、...
-
access2021 VBA メソッドまたは...
-
chatgptでつくってもらったコー...
-
パイソンプログラム
-
Gitのクローンについて
-
ExcelのVBAコードについて教え...
-
JANコードとPOSコードは同じ?
-
sinカーブの表示のさせ方
-
COBOLの文法
-
特定行の背景色を変えたいのですが
-
JavaScriptの定数名が取り消し...
-
アルファベットに付いて質問し...
-
◾️Excel VBA 統合について Cons...
-
変数名「cur」について
おすすめ情報