Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3385 / 13644 ツリー ←次へ | 前へ→

【61673】日付を加算しながら印刷 ryu 09/5/26(火) 14:17 質問[未読]
【61676】Re:日付を加算しながら印刷 street 09/5/27(水) 8:29 回答[未読]
【62072】Re:日付を加算しながら印刷 ryu 09/6/19(金) 14:51 お礼[未読]
【62076】Re:日付を加算しながら印刷 つるりん 09/6/20(土) 15:22 発言[未読]
【62519】Re:日付を加算しながら印刷 ruyu 09/7/28(火) 15:09 お礼[未読]
【62538】Re:日付を加算しながら印刷 その 09/7/29(水) 12:35 回答[未読]
【62583】Re:日付を加算しながら印刷 ruyu 09/8/2(日) 17:19 お礼[未読]

【61673】日付を加算しながら印刷
質問  ryu  - 09/5/26(火) 14:17 -

引用なし
パスワード
   エクセルで作成した帳票に年月日(例2009/06/01)を入力し、入力した月の月末まで日付を加算しながら印刷したいのですが・・・

手順としては
1.年月日を入力
2.コマンドボタンをクリックする
3.入力した日付を加算しながら、その月の日付の枚数分印刷する
関数ではできないと思うので
どのたか教えてください。できればロジックも
よりしくお願いします

【61676】Re:日付を加算しながら印刷
回答  street  - 09/5/27(水) 8:29 -

引用なし
パスワード
   Option Explicit

Sub myPrint()
Dim myDate As Date
Dim lstDay As Date
Dim i As Long
'開始日を2009/6/1形式でインプットボックスへ入力
myDate = Application.InputBox("開始日を入力してください")
'月末を求め変数に代入
lstDay = DateSerial(Year(myDate), Month(myDate) + 1, 1) - 1
'ループで1ヶ月分プリント処理
For i = 0 To lstDay - 1
  ActiveSheet.Range("a1") = myDate + i
  ActiveSheet.PrintPreview
Next
End Sub
で、わかりますか?
PrintPreviewをやりたいコードに変更してね。

【62072】Re:日付を加算しながら印刷
お礼  ryu  - 09/6/19(金) 14:51 -

引用なし
パスワード
   お答え頂きありがとうございます。お礼が遅れて申し訳ないです。
質問に不備があったのでまた質問してよいですか?

実はVBA初心者でインプットボックスの作り方もいまいち解りません。

あとexcelのセルに開始日を入力し、その日付を自動で加算しつつ印刷をしたいのですが教えて頂いたものでできますか?

【62076】Re:日付を加算しながら印刷
発言  つるりん  - 09/6/20(土) 15:22 -

引用なし
パスワード
   Sub myPrint()
Dim myDate As Date
Dim lstDay As Date
Dim i As Long
'開始日を2009/6/1形式でインプットボックスへ入力
myDate = Application.InputBox("開始日を入力してください")
'月末を求め変数に代入
lstDay = DateSerial(Year(myDate), Month(myDate) + 1, 1) - 1
'ループで1ヶ月分プリント処理
For i = 0 To Day(lstDay) - 1
  ActiveSheet.Range("a1") = myDate + i
  ActiveSheet.PrintPreview
Next
End Sub

ちょっと訂正しただけですが、上記でいいと思います。
標準モジュールにコピペしてお試しを、インプットボックスが立ち上がります。

【62519】Re:日付を加算しながら印刷
お礼  ruyu  - 09/7/28(火) 15:09 -

引用なし
パスワード
   お礼が遅れてすみません
出来ました。ありがとうございました。

又、質問があります

inputboxが表示されて
1.×ボタンをクリックしたとき→終了(エクセル自体も終了)
2.何も入力せずにキャンセルボタンをクリックしたとき→msgboxにて注意する→再度入力画面へ
ということがやりたいのですが1.はできたのですが2.がどうしても上手くできません教えてください

【62538】Re:日付を加算しながら印刷
回答  その  - 09/7/29(水) 12:35 -

引用なし
パスワード
   Sub myPrint()
Dim myDate As Date
Dim lstDay As Date
Dim i As Long
'開始日を2009/6/1形式でインプットボックスへ入力
myDate = Application.InputBox("開始日を入力してください")
'キャンセルの場合はマクロ終了
If myDate = 0 Then Exit Sub
'月末を求め変数に代入
lstDay = DateSerial(Year(myDate), Month(myDate) + 1, 1) - 1
'ループで1ヶ月分プリント処理
For i = 0 To Day(lstDay) - Day(myDate)
  ActiveSheet.Range("a1") = myDate + i
  ActiveSheet.PrintPreview
Next
End Sub

2,の場合処理を途中でキャンセルしたくてもできなく
  なりますよ?インプットボックスの場合は×ボタンと
  キャンセルボタンの処理の振り分けはできないと思います。
どうしても、そういった小細工が必要ならユーザーフォームを
使うことになると思います。
一応上記のコードはキャンセルの場合は処理を終了させています。

【62583】Re:日付を加算しながら印刷
お礼  ruyu  - 09/8/2(日) 17:19 -

引用なし
パスワード
   そのさんありがとうございます。
やっぱりインプットボックスではむりですか・・

さっそく試してできました。またよろしくおねがいします。

3385 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free