Excel2010のVBAで新たに作成した分のシートだけを印刷する処理を書いているのですが、
印刷(printOut)の所で次のエラーが出てしまいます。
【オブジェクト変数またはWithブロック変数が設定されていません。】
解決策をご教授願います。よろしくお願いします。
Dim firstSheetsMaisu As Integer '最初のシート枚数
Dim sheets As Worksheet
Dim sheetIndexArray() As Integer '配列
Dim hairetuSu As Integer '要素数
firstSheetsMaisu = 4 '最初のシート枚数を4に設定
sheetsMaisu = Worksheets.count '新たに作成した分を含めた現在のシート枚数
Application.DisplayAlerts = False
'最初のシート分を除いた作成したシート文を配列に格納します。
For i = sheetsMaisu To firstSheetsMaisu + 1 Step -1
Worksheets(i).Activate
ActiveSheet.PageSetup.PaperSize = xlPaperA4
ReDim Preserve sheetIndexArray(hairetuSu)
sheetIndexArray(hairetuSu) = i
hairetuSu = hairetuSu + 1
Next
sheets(sheetIndexArray).printOut '←ここでエラーが発生します。
sheets("入力項目").Select
Application.DisplayAlerts = True
No.1ベストアンサー
- 回答日時:
>Dim sheets As Worksheet
この行削除してください。
Sheetsプロパティと同じ名前で変数宣言してはいけません。
'sheets(sheetIndexArray).printOut '←ここでエラーが発生します。
ここは変数ではなくてSheetsコレクションのつもりで書かれていますよね。
変数宣言されているものだからオブジェクト変数だと解釈されてしまって
提示のエラーが出ます。
以下余談ですが
Loop前に対象Sheet数が判るのですから、
For..Nextステートメントの前に
ReDim sheetIndexArray(sheetsMaisu - firstSheetsMaisu - 1)
1回だけ設定すれば ReDim Preserve 不要です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBA 配列を使ったコードに直していただけますか 4 2023/05/06 15:18
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ExcelVBA】全シートのセルの...
-
実行時エラー'1004': WorkSheet...
-
ブック名、シート名を他のモジ...
-
ユーザーフォームに入力したデ...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
別のシートから値を取得するとき
-
excelのマクロで該当処理できな...
-
実行時エラー1004「Select メソ...
-
エクセルVBAでダブルクリックを...
-
VBAで同じシート名のコピー時は...
-
VBA 存在しないシートを選...
-
Excelマクロのエラーを解決した...
-
Excel VBA 複数行を数の分だけ...
-
XL:BeforeDoubleClickが動かない
-
Excel チェックボックスにチェ...
-
エクセルのマクロで条件一致の...
-
【Excel VBA】Worksheets().Act...
-
Access エクセルシート名変更
-
いつもお世話になっております...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
VBAで大量のファイルをシート名...
-
ユーザーフォームに入力したデ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
VBA 存在しないシートを選...
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
実行時エラー1004「Select メソ...
-
【Excel VBA】Worksheets().Act...
-
ブック名、シート名を他のモジ...
-
エクセルのシート名変更で重複...
-
ExcelのVBAのマクロで他のシー...
-
Excel VBA 複数行を数の分だけ...
-
エクセルのマクロについて教え...
-
VBA 最終行まで数式をコピーする
おすすめ情報