[[20170928111255]] 『複数の書類を印刷するマクロ』(チカ) ページの最後に飛ぶ

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

 

『複数の書類を印刷するマクロ』(チカ)

複数のページを、指定した枚数分、印刷するマクロを作成しています。
現状
1、エクセルで作成した書類が複数ページあります。
2、書類別に印刷する枚数が異なります。
3、年月を各書類の指定した場所に入力する必要があります。
4、ユーザーフォーム上に印刷ボタン(コマンドボタン)を一つ。

       「3」の年月を入力する為に入力欄(テキストボックス)を2つ。
目標動作
《年月の入力》
・入力欄に年月を入力します。
・指定した書類には年・月・曜日を指定した場所に反映するようにします。
・指定した書類には月だけが指定した場所に反映するようにします。
   ※編集後(年・月・曜日を反映後)の書類は保存しません。
《印刷》
・印刷ボタンをクリックすると各書類が、指定した枚数、印刷されます。
    ※印刷枚数を変更することはありません。

よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


・指定した書類には年・月・曜日を指定した場所に反映するようにします。
・指定した書類には月だけが指定した場所に反映するようにします。

シート名セル値???

シート1 A1=年 B1=月 C1=曜日
シート2 ?????        等々

・印刷ボタンをクリックすると各書類が、指定した枚数、印刷されます。
枚数指定 何処で決定ですか?
シート1  1枚  シート2 3枚    等々

テキストボックス 反映だけなら
Range("C2") = TextBox1.Value
Range("C3") = TextBox2.Value

プリントアウト

  Sheets(Array("Sheet1", "Sheet2", "Sheet3")).PrintOut

枚数指定なら
PrintOut Copies:=2  とか
(++) 2017/09/28(木) 11:27


(++)さん、返信ありがとうございます。
[印刷]のマクロができました。
そして、こちらの説明不足(年・月・日の編集)申し訳ございません。
《年月の入力についての補足》
・シート1.セル1Aには、テキストボックスに入力された月を反映
  (先程、(++)さんから教えていただいたコードで解決)
・シート2.セル1Aには、テキストボックスに入力された月だけで、その月の日付・曜日が
   自動的に(マクロで)変更する動作を目指しています。
《日付・曜日変更の例示》
1,テキストボックスに10月と入力。
2,シート2.セル1Aが10月に変更される。
3,シート2.セル3A〜セル34Aが10月の日付に変更される。
4,シート2.セル3B〜セル34Bが10月の曜日に変更される。

よろしくお願いいたします。

(チカ) 2017/09/28(木) 14:57


年を入れる所が無いと万年カレンダーは作れません

例えば  
下記の関数はB3 年号 B4 月 入力して 1日がB5から始まる場合のオートカレンダーです

=DATE($B$3,$B$4,1)    1日
=B5+1          2日
下にフィル 25行目まで  28日

=IF(OR(B32="",B32=EOMONTH($B$5,0)),"",B32+1)  29日
=IF(OR(B33="",B33=EOMONTH($B$5,0)),"",B33+1)  30日
=IF(OR(B34="",B34=EOMONTH($B$5,0)),"",B34+1)  31日

曜日は下記の様になります
=TEXT(B5,"AAA")
(++) 2017/09/28(木) 16:58


=DATE(YEAR(TODAY()),$B$4,1)

1日をこの様に書けば 年号いらないか

表示形式は d  です
(++) 2017/09/28(木) 17:21


Range("A1") = TextBox1.Value
 Range("A3").Formula = "=DATE(YEAR(TODAY()),$A$1,1)"
 Range("A4").Formula = "=B5+1"
Range("A4").Select
    Selection.AutoFill Destination:=Range("A4:A31"), Type:=xlFillDefault

Range("A32").Formula ="=IF(OR(B32="",B32=EOMONTH($B$5,0)),"",B32+1)"  '29日
Range("A33").Formula ="=IF(OR(B33="",B33=EOMONTH($B$5,0)),"",B33+1)"  '30日
Range("A34").Formula ="=IF(OR(B34="",B34=EOMONTH($B$5,0)),"",B34+1)"  '31日

Range("B2").Formula = "=TEXT(A2,"AAA")"
Range("B2").Select

    Selection.AutoFill Destination:=Range("B2:B34"), Type:=xlFillDefault
(++) 2017/09/28(木) 17:34

 Selection.AutoFill Destination:=Range("B2:B34"), Type:=xlFillDefault

(++) 2017/09/28(木) 17:36


 Range("A3:A34").NumberFormatLocal = "d"

書式設定 入れるの忘れてました
(++) 2017/09/28(木) 17:48


オートフィルより コピーの方が良いかな

Range("A3").Copy Range("A4:B31")

Range("B2").Copy Range("B3:B34")
(++) 2017/09/29(金) 09:04


Range("A1") = TextBox1.Value
Range("A3").Formula = "=DATE(YEAR(TODAY()),$A$1,1)"
Range("A4").Formula = "=A3+1"
Range("A4").Copy Range("A5:B31")
Range("A32").Formula ="=IF(OR(A32="",A32=EOMONTH($A$3,0)),"",A32+1)"  '29日
Range("A33").Formula ="=IF(OR(A33="",B33=EOMONTH($A$3,0)),"",A33+1)"  '30日
Range("A34").Formula ="=IF(OR(A34="",B34=EOMONTH($A$3,0)),"",A34+1)"  '31日
Range("B2").Formula = "=TEXT(A2,"AAA")"
Range("B2").Copy Range("B3:B34")
(++) 2017/09/29(金) 09:11

Range("A1") = TextBox1.Value
Range("A3").Formula = "=DATE(YEAR(TODAY()),$A$1,1)"
Range("A4").Formula = "=A3+1"
Range("A4").Copy Range("A5:A31")
Range("A32").Formula ="=IF(OR(A32="",A32=EOMONTH($A$3,0)),"",A32+1)"  '29日
Range("A33").Formula ="=IF(OR(A33="",A33=EOMONTH($A$3,0)),"",A33+1)"  '30日
Range("A34").Formula ="=IF(OR(A34="",A34=EOMONTH($A$3,0)),"",A34+1)"  '31日
Range("B2").Formula = "=TEXT(A2,"AAA")"
Range("B2").Copy Range("B3:B34")

めちゃくちゃな指示だった  笑い
あげちゃうと 修正できないのがつらいな

(++) 2017/09/29(金) 09:17


Range("A32").Formula ="=IF(OR(A31="",A31=EOMONTH($A$3,0)),"",A31+1)"  '29日
Range("A33").Formula ="=IF(OR(A32="",A32=EOMONTH($A$3,0)),"",A32+1)"  '30日
Range("A34").Formula ="=IF(OR(A33="",A33=EOMONTH($A$3,0)),"",A33+1)"  '31日
(++) 2017/09/29(金) 09:21

(++)さん、返信が遅くなり申し訳ございません。
目指すマクロが完成しました。
ありがとうございました。
(チカ) 2017/09/30(土) 01:02

コメント返信:

[ 一覧(最新更新順) ]


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