
マクロ初心者です。
ピボットテーブルでマクロを使って連続印刷をしようと思いました。
一応やってみて連続で印刷は出来たのですが番号がないときエラーになってしまします。
たとえば"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ランキング
-
フィルターかけた後、重複を除...
-
access2021 VBA メソッドまたは...
-
1日に1人がこなせるプログラム...
-
変数名「cur」について
-
ハイパーターミナルが返す応答...
-
COBOLの文法
-
JANコードとPOSコードは同じ?
-
特定行の背景色を変えたいのですが
-
Exel VBA 別ブックから該当デ...
-
access2003 クエリSQL文に...
-
VBAでファイルオープン後にコー...
-
MIPSのアセンブリ・コードの問...
-
VBA リストボックス(複数条件...
-
Excelシート上で右クリックがで...
-
VSコードでHTMLに(リンク)フ...
-
JavaScriptの定数名が取り消し...
-
MessageBoxで表示される文字列...
-
欠番の抽出について
-
JIPS-Eコードのコード表について
-
Google Apps Script の構文エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
JavaScriptの定数名が取り消し...
-
access2021 VBA メソッドまたは...
-
JANコードとPOSコードは同じ?
-
PreviewKeyDownイベントが2回...
-
エクセルに見えない文字(JISX0...
-
オートフィルタで抽出結果に 罫...
-
Excelシート上で右クリックがで...
-
Exel VBA 別ブックから該当デ...
-
access2003 クエリSQL文に...
-
変数名「cur」について
-
Nullの使い方が不正です。
-
【VB6】実行ファイルとした後、...
-
VBAでファイルオープン後にコー...
-
COBOLの文法
-
Accessでの抽出で完全一致。
-
AccessでReplace関数を使うときに…
-
Access DCountでの連番について
-
sinカーブの表示のさせ方
おすすめ情報