settingsログイン
メニュー

【回答済み】日付を変更して繰り返して印刷

閲覧 391
初めまして。エクセル2010を使用しています。
VBA初心者につきご教示いただければと思います。

ある様式を一月分、日別に一枚づつ印刷します。
M列の行6から行36まで、一月の1日から31日までの日付データが
あり、上から順に、G3に日付を貼り付けて、印刷していきます。
M列の日付は、あらかじめ関数で、土日祝祭日・振替休日は空白に
なるようにしています。従って、表示された日付だけが印刷対象の
日付となります。

そこで、上記内容のモジュールを作成したところ、無反応でした。
どのように修正したらよいのかアドバイスをいただけないでしょい
か。
よろしくお願いします。

なお、以下の内容はスマフォで入力していますので多少の間違いが
あるかもしれません。

こんな内容でとても恥ずかしいですが、よろしくお願いします。

Dim cnt As Long
 
For cnt =1 to 31 Step 1
   If Cells(cnt,13).Value=””  Then  Exit  For
   Range(”G3”)=Cells(cnt,13)
   ActiveWindow.SelectedSheets.PrintOut Copies:=1,
  Collate:=True, IgnorePrintAreas:=False
Next  cnt
匿名 2016 8/21 質問 Excel(エクセル)

回答 1

役立ち 0
上のプログラムだと,cnt=1 のとき Cells(cnt,13)=”” となり,
Forループを抜けてしまいます。そのため結果として何も表示しないこと
になります。
 cnt=1 のときに,セルM6 をチェックするためには
  Cells(cnt+5,13) とする必要があります。
 または,Forの範囲を cnt=6 to 36 すればいいことになります。

下のような感じにすればいいと思います。

Dim cnt As Long
 
For cnt = 6 To 36 Step 1
    If Cells(cnt, 13) <> ”” Then
        Range(”G3”) = Cells(cnt, 13)
        ActiveWindow.SelectedSheets.PrintOut Copies:=1,
        Collate:=True, IgnorePrintAreas:=False
    End If
Next cnt


Cells(cnt,13)の値が“”(空白)でなければ,セルの値をセルG3に
コピーして印刷する。そうでなければ何もしないことになります。

 下のエクセルファイルに例を作っておきました。参考にしてください。
ただし、ボタンをクリックすると印刷範囲のプレビューをするように
なっています。

 http://tsubouchi-ps2.jp/others/qb130330.xlsm

ツボウチ塾 パソコンスクール 岐阜県 各務原市 初心者向けパソコン教室

全ての回答 ホームページへ
2016 8/21 回答

Office(オフィス)、Excel(エクセル) の企業/事業者/教室/プロの方のホームページの集客、アクセスアップ、SEO対策効果が期待できるリスティングサイト=Ask-itをぜひご活用ください

Ask IT にようこそ。ここではコミュニティメンバーに質問したり、回答を得ることができます。
ITについて質問したい方へ ITについてプロに質問したい方は会員登録後すぐに質問をする事ができます。

プロフェッショナルの方へ 質問に答えていただけるプロフェッショナルの方は下記をご覧下さい

お気づきの点があれば是非お知らせください
...