[[20150301224629]] 『エクセルVBAで日曜日だけを除外し、1ヶ月分の日報』(マーくん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『エクセルVBAで日曜日だけを除外し、1ヶ月分の日報を自動作成印刷』(マーくん)

今現在、6つの部署用の日報を1つのシートに6ページで作成しています。
このシートの印刷設定の欄外のA1に日付を入力することにより
印刷設定されたA2以下の各ページのそれぞれの日付が
A1を参照して入力されます。
1ヶ月分を毎回日付を変えながら、
しかも日曜日を印刷しないようにしておこなっています。

これを、自動で1ヶ月分日付入りで、
しかも日曜日を除いた日報を作成し印刷できないものかと考えております。
例えば、マクロ開始ボタンを押すと
「何月何日からですか」とダイヤログボックスがでて、
次に「何月何日までですか」と出てきて、
そして「印刷しますか?」とでて、「ハイ」を押すとあとは、
A1に自動入力されて6ページが印刷され、
自動で翌日の日付で6ページが印刷され、
終了指定の日まで印刷され終了 となるようなマクロです。

VBAの達人の方、何月何日から何月何日までと入力して
ボタンを押すだけで日曜日を除く日報が
印刷できるこのような複雑なプログラムを教えて下さい

御願いいたします。

< 使用 Excel:Excel2007、使用 OS:Windows8 >


1ヶ月分であれば、何月ですかでよいのでは?

(マナ) 2015/03/01(日) 23:25


 とりあえずのたたき台で。

 Sub Sample()
    Dim sd, ed, pd
    sd = CDate(InputBox("開始日を入力してください。", , Format(Date, "YYYY/MM/1")))
    ed = CDate(InputBox("終了日を入力してください。", , Format(DateAdd("M", 1, sd) - 1, "YYYY/MM/DD")))

    For pd = sd To ed
        If Weekday(pd) <> vbSunday Then
            Range("A1").Value = pd
            ActiveSheet.PrintPreview
        End If
    Next
 End Sub

(Mook) 2015/03/01(日) 23:38


ありがとうございます。
明日、もう一度教えていただいたプログラムで試してみたいと思います。
ご指摘の何月ですかの場合、月末の日にちが31日や30日など変化するので対応できるのかどうか心配でしたので・・・
みなさんありがとうございます。
(マーくん) 2015/03/02(月) 00:01

本日、試してみました。残念ながら、印刷プレビューで停止し、そのまま印刷を実行してもワンセットの6枚だけが印刷されます。しかもプレビュー画面から戻ることが出来なくなり、タスクの停止しないとダメになります。やはり、なかなか手強いようです。
(マーくん) 2015/03/02(月) 17:34

 印刷日付分だけプレビューが実行されるので、一ヶ月だったら20回以上、プレビューが起動
 すると思います。

 紙がもったいないと思ったので、PritPreview にしたのですが、問題なければ
 PtintOut に変更することが想定でした。
(Mook) 2015/03/02(月) 22:49

Mookさま、お返事が大変遅くなって申し訳ありません。
インフルエンザになったため一切のことができない状態でした。
本当に申し訳ありません。

また、教えていただいたプログラムですが
印刷プレビューが枚数分あることに全く気づいていませんでした。
そして、プレビューからPrintOutに変更したら思っていたとおりの印刷ができました。
ほんとうに素晴らしい!
ありがとうございました。
(マーくん) 2015/03/04(水) 17:36


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.