マクロで封筒を自動印刷出来る様にファイルを作りました。
先日、そのマクロで封筒を印刷する前に
別のファイルの物を印刷しようと思い、そのファイルの印刷設定を変えて
印刷をしました。
その後、マクロで作ったファイルで封筒を印刷したところ
印刷設定がおかしくなってしまいました。
とりあえず、設定を直し何度かマクロで印刷を試みましたが
いくら直して上書きしても印刷設定が直らず・・・・。
一度、PCを再起動して再び試みると印刷がきちんとされました。
この現象はマクロを使っているからなのでしょうか??
それともマクロの使い方が悪くて起きる症状なのでしょうか?
対策方法があれば教えて頂けるとうれしいです。
使っているマクロは次のとおりです。
Sub Futo_Copy()
'//////////////////////////////
'印刷を行う
'//////////////////////////////
Dim i As Integer
Dim S_1 As String '1行目
Dim S_2 As String '2行目
Dim S_3 As String '3行目
Dim S_4 As String '4行目
Dim S_5 As String '5行目
Dim S_6 As String '6行目
Dim S_7 As String '7行目
Dim S_8 As String '8行目
Dim S_9 As String '9行目
Dim S_10 As String '10行目
Application.ScreenUpdating = False '描画をしない
'sheet_name = ActiveSheet.Name 'アクティブシート名を取得
'シートの中で使用されている最大の列を求める。
'row_count = Worksheets("印刷対象").Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
'シートの中で使用されている最大の行を求める。
'col_count = Worksheets("印刷対象").Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column
row_count = Worksheets("印刷対象").Range("A65536").End(xlUp).Row
For i = 3 To row_count '印刷対象の3行目からループ
Worksheets("出力").Select
'データ取得
S_1 = Worksheets("印刷対象").Cells(i, 1)
S_2 = Worksheets("印刷対象").Cells(i, 2)
S_3 = Worksheets("印刷対象").Cells(i, 3)
S_4 = Worksheets("印刷対象").Cells(i, 4)
S_5 = Worksheets("印刷対象").Cells(i, 5)
S_6 = Worksheets("印刷対象").Cells(i, 6)
S_7 = Worksheets("印刷対象").Cells(i, 7)
S_8 = Worksheets("印刷対象").Cells(i, 8)
S_9 = Worksheets("印刷対象").Cells(i, 9)
S_10 = Worksheets("印刷対象").Cells(i, 10)
Worksheets("出力").Cells(1, 1) = S_1
Worksheets("出力").Cells(2, 1) = S_2
Worksheets("出力").Cells(3, 1) = S_3
Worksheets("出力").Cells(4, 1) = S_4
'Worksheets("出力").PrintPreview 'プレビュー
Worksheets("出力").PrintOut 'プリントアウト
Next i
'Worksheets("出力").Cells.Clear 'シートのクリア
Application.ScreenUpdating = True '描画開始
Worksheets("印刷対象").Activate
End Sub
出来ればこのマクロの形をあまり変えずに
症状が直せるといいのですが・・・。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
No.1の方がおっしゃるよう、マクロは関係ないですね。
>別のファイルの物を印刷しようと思い、そのファイルの印刷設定を変えて
>印刷をしました。
この操作がどのようなものかわかりませんが、プリンターのデバイスから変更の操作を
していたら、ご指摘の様な動作になると思います。
回避の方法として
1、別のファイルを印刷した後に、プリンターのデバイスの設定を元に戻す。
2、別のファイルを印刷するときに、プリンターのデバイスは操作しない。
3、エクセルで印刷する際には、別のプリンターデバイスで印刷する。
ちょっとしたウルトラC的なテクニックですが
手順
1、同じプリンターで、プリンターの設定を2個作ります。
2、エクセルVBAで印刷するときに、プリンターの指定を行います。
提示のVBAも結構もだが多いので修正してみます(動作確認はしていません)
Sub Futo_Copy()
Dim myPrinter AS string
myPrinter = Application.ActivePrinter '現在のプリンタ名を取得
Application.ActivePrinter = "変更したいプリンタ名"
'↑の部分でプリンターを通常のプリンターから設定の変更していないプリンター切り替える
with Worksheets("出力")
row_count = Worksheets("印刷対象").Range("A65536").End(xlUp).Row
For i = 3 To row_count '印刷対象の3行目からループ
.Cells(1, 1) = Worksheets("印刷対象").Cells(i, 1)
.Cells(2, 1) = Worksheets("印刷対象").Cells(i, 2)
.Cells(3, 1) = Worksheets("印刷対象").Cells(i, 3)
.Cells(4, 1) = Worksheets("印刷対象").Cells(i, 4)
Worksheets("出力").PrintOut 'プリントアウト
Next i
End With
Application.ActivePrinter = myPrinter
'↑の指示で最初のプリンターデバイスに戻す。
End Sub
こんな感じで試してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- プリンタ・スキャナー 2台のプリンターでそれぞれ異なる様式の帳票を印刷したい。 2 2022/09/06 10:07
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで印刷の成功判定
-
PDFファイルを印刷し終了するには
-
vbaでPDFファイルが印刷されない
-
印刷ダイアログを表示させない方法
-
VB6からのエクセルの印刷品...
-
PHPでPDFファイルの直接印刷
-
Eclipseを使ってソースを印刷し...
-
サーバーで作成したPDFを直接印...
-
プリンタの印刷ジョブを削除し...
-
Excel VBA オブジェクトが必要...
-
VB.NETで罫線付きのデータを印...
-
VBからプリンタに出力する時に...
-
フォームを印刷するには
-
イベントプロシージャ 印刷が...
-
テキストファイル印刷 .net VB...
-
プリンターを指定して印刷するには
-
Accessフォームで全レコードを...
-
webページの印刷制限について
-
C++Builder5で画像データを用紙...
-
ActiveReportsを使って[印刷ダ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷要求順番と印刷出力順番が...
-
印刷ダイアログを表示させない方法
-
ActiveReportsを使って[印刷ダ...
-
印刷ダイアログを表示させたくない
-
プリンターを指定して印刷するには
-
PDFファイルを印刷し終了するには
-
vbaでPDFファイルが印刷されない
-
VBscriptでPDFファイルを直接印...
-
VBからのプリンタ制御について
-
ACCESSで設定した帳票の用紙サ...
-
イベントプロシージャ 印刷が...
-
VBSでExcelファイル印刷時のプ...
-
phpでの自動印刷
-
VBAにて指定したセルをプルダウ...
-
EXCELファイルの複数ダウンロー...
-
VBAで印刷スプール終了の判定を...
-
プリンタの印刷ジョブを削除し...
-
PHPでPDFファイルの直接印刷
-
A4の2枚をA3の1枚にする編集方法?
-
VBでExcel印刷する時のプリンタ...
おすすめ情報