
会社で使っているエクセルのマクロの連続印刷が先月まで出来ていたのが、今月突然エラーが出て2枚目以降が「印刷中」のまま動かなくなってしまいました。
使用しているマクロは下記の通りです。
Sub 個人票印刷()
Range("会社") = Range("自")
Do While Range("会社") <= Range("至")
Sheets("社員").PrintOut
Range("会社") = Range("会社") + 1
Loop
End Sub
残業用紙を名前と部署だけ変えて印刷するために、指定番号分だけ繰り返すものなのですが、印刷しようとすると1枚目だけ印刷されてその後動かなくなってしまいます。
自1→至1 の場合は正常に印刷可能。
自1→至5 の場合は2枚目以降が印刷不可能になります。
何がエラーなのか確認する方法はあるのでしょうか?
マクロは初心者で前任者のものを使用しているのみです。
どうかよろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
直感的にみて、コード自体に無理がありますね。
名前-定義で登録したものでしょうけれども、
Range("会社") <= Range("至")
一体、どんな論理かと思います。
読み手には、Range("会社") も、Range("至")も、意味が分かりません。それ自体は、ユーザーの定義の範囲ですから、分からないのです。
VBA初心者から中級クラスの方は、良く、Rangeの引数に、ワークシートで登録した「名前定義」を使うのですが、それは、固定しているものではありませんから、コードの可読性をあげるなら、勤めて使わないほうがよいです。
「名前定義」は、いくら絶対参照にしたところで移動します。それに、「名前定義」をしたもので、それを掲示板で判定してほしいといわれても、それ自体では、判定できません。ただ、「使うべきではない」というだけです。
>何がエラーなのか確認する方法はあるのでしょうか?
それは、ご自身のワークシートで調べるしかありません。
はっきり言えば、そのマクロは、記録マクロでもよいので作り直しですね。VBAが分からないのでしたら、質問を新たに出して、相談したほうがよいです。そのコードは手が付けられないです。
引数は、「A1アドレス」を入れるべきです。
ただし、いずれにしても、以下のコードは奇妙です。
Do While Range("会社") <= Range("至")
Sheets("社員").PrintOut
Range("会社") = Range("会社") + 1
Loop
シート名を Sheets("社員") としているわけで、Range("会社")や Range("至")は、どこにあるものでしょうか。コードがあやふやすぎます。VBAでは、Names オブジェクトといいますが、それは、テキスト型の文字列数式ですから、それ自体が、一旦インターフェースで翻訳されて、VBAに与えられるわけで、VBAでどう解釈しているかは分かりません。
PrintOut するにしても、範囲に対してするものだから、ActiveSheet.PageSetUp.PrintArea = [範囲のアドレス]
で、PrintOut するのではないのかな?
No.2
- 回答日時:
こんばんは。
あまり時間がないので・・・>エラーが出るわけではなくて、「印刷中」という表示のまま
ご提示のマクロだと、マクロからは「印刷中」という表示はでないはずなのですが、システム側の設定で表示がでるのでしょうか・・・?
多分、マクロは印刷命令を実行中に、印刷が終了できない状態(データを送り終われない)でずっと待っているという事態に陥っているのではないかと推測されます。
いずれにしろ、そのPC固有のトラブルのように見受けられます。(これまでの情報だけでは確定できませんが)
プリンタドライバかシステムのどこかがおかしくなったとか・・
この辺に関しては、まったく無知なのでなんともわかりかねます。(すみません)
どなたか詳しい方からの回答をお待ちします。
No.1
- 回答日時:
ご質問文だけではマクロが止る理由は判断できませんが、エラーが出て停止するわけではないのですよね?
(エラーがでるのであれば、それが大きなヒントになります。)
プリンターからビジー信号が返った時の処理がおかしくなって実行待ちのままとか、他のマクロが動いていて何か干渉しているとか・・・
(カウンターに使用しているセルがRange("会社") という名前なので、どうも気にはなりますが)
最近、機器関連で環境が変わったようなことはないのでしょうか?
>残業用紙を名前と部署だけ変えて印刷するために、
この部分でなにかトラブルが起きている可能性はありませんか?
参照している表などがおかしくなっているとか・・・
別ブックを参照していてその位置が動いているとか・・・
この処理を関数や式で行っているのか、あるいはこちらもマクロで行っているのかなどということも関連してきそうですね。
上記のマクロのどこで止るかを確認するには、VBエディターの画面を開いて、1ステップずつ実行してどこで止るか確認してみるとか、いろいろ方法は考えられますが、対処するのに多少はマクロの知識が必要となりそうです。
早速のご回答有難うございます。
エラーが出るわけではなくて、「印刷中」という表示のまま固まってしまいます。
ためしにデータだけを送って違うパソコンで実行したところ、普通に印刷できました。
ということは、マクロ自体は大丈夫ということでしょうか。
パソコンに何か不具合があるのでしょうか?
ちなみに、印刷できなかったPCから2種類のプリンタに印刷を試してみましたが、2種類ともだめでした。
>プリンターからビジー信号が返った時の処理がおかしくなって実行待ちのまま・・・
これはどうやって確認したらよいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- 年賀状作成・はがき作成 Wordによる宛名印刷 2 2023/01/04 15:36
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
Excel_マクロ_現在開いているシ...
-
メッセージボックスのOKボタ...
-
特定のPCだけ動作しないVBAマク...
-
エクセルに張り付けた写真のフ...
-
Excel・Word リサーチ機能を無...
-
Excel マクロ VBA プロシー...
-
Excelのセル値に基づいて図形の...
-
マクロの連続印刷が突然不可能...
-
一つのTeratermのマクロで複数...
-
TERA TERMを隠す方法
-
Excel マクロでShearePoint先の...
-
エクセルVBAでNAVITIMEを使って...
-
ExcelVBAでPDFを閉じるソース
-
ExcelのVBA。public変数の値が...
-
VBAにて別ワークブック上の実行...
-
マクロ実行時、ユーザーフォー...
-
ExcelVBAの繰り返し処理でwebク...
-
IF関数を使ってマクロを実行さ...
-
MacのWordでショートカットの割...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
Excel_マクロ_現在開いているシ...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
エクセルで別のセルにあるふり...
-
エクセルに張り付けた写真のフ...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
Excelのセル値に基づいて図形の...
-
Excel VBAからAccessマクロを実...
-
ExcelVBAでPDFを閉じるソース
-
マクロ実行時、ユーザーフォー...
-
オートフィルターとExcelマクロ...
-
wordを起動した際に特定のペー...
-
特定文字のある行の前に空白行...
-
エクセルで縦に並んだデータを...
おすすめ情報