
似たような質問があり、請求書バージョンなど見て理解しようとしたのですが、どうしても出来ませんでした。 エクセルで、日付だけを変えて、日誌を1ヶ月分連続自動印刷させたいです。 シート1のA列に3月1日から3月31日までの日付を入力。 B列には、印刷をしたい日付の横に「1」を入力。(月曜日~土曜日)
シート2には、日誌のテンプレートがあり、そこの日付部分に、シート1の指定された日付(月曜日から土曜日)を連動させ、印刷ボタンを作成して、印刷ボタンを押すと連続印刷できるようにしたいです。
教えていただけると幸いです。よろしくお願いします。
教えていただけると幸いです。
No.4ベストアンサー
- 回答日時:
No.3 補足
① 毎月翌月分を印刷されるのだろうとして「InputBox」に翌月がデフォルトでセットされます。
② 月だけで考えると12月の翌月が今年の1月になってしまうので、今月より前になった時は翌年にするようにしています。(先月以前はセットできません)
③ A列に表示される日付には曜日も表示しました。(修正時の参考になるかと…)
No.3
- 回答日時:
以下の様な物はいかがですか?
※「Const 日付シート名 As String = "Sheet1"」「Const 日付シート名 As String = "Sheet2"」「Const 日付個所 As String = "A1"」は修正して下さい。
※「日付セット」マクロを実行後必要ならば B列を修正してその後「印刷処理」マクロを実行して下さい。
Option Explicit
Const 日付シート名 As String = "Sheet1" ' 環境に合わせて下さい
Const 印刷シート名 As String = "Sheet2" ' 環境に合わせて下さい
Sub 日付セット()
Dim 対象月 As String
Dim 年月日 As String
Dim 開始日 As Date
Dim 日付 As Date
Dim 行 As Long
Sheets(日付シート名).Select
対象月 = Format(DateAdd("m", 1, Date), "m") ' 翌月をデフォルトにセット
対象月 = InputBox(prompt:="対象の月を指定して下さい", Default:=対象月)
対象月 = StrConv(対象月, vbNarrow) ' 全角文字で入力した時の対応
年月日 = Year(Date) & "/" & 対象月 & "/1"
If IsDate(年月日) Then
開始日 = DateValue(年月日)
Else
If 対象月 = "" Then
MsgBox ("キャンセルしました")
Else
MsgBox ("「" & 対象月 & "」は月として指定出来ません")
End If
Exit Sub
End If
If 開始日 < DateValue(Year(Date) & "/" & Month(Date) & "/1") Then
開始日 = DateAdd("yyyy", 1, 開始日)
End If
Cells.ClearContents
Range("A1:A31").NumberFormatLocal = "yyyy/mm/dd (aaa)"
Do
日付 = 開始日 + 行
行 = 行 + 1
Cells(行, 1).Value = 日付
If Weekday(日付, vbMonday) <= 5 Then
Cells(行, 2).Value = 1
End If
Loop Until Day(開始日 + 行) = 1
Cells.EntireColumn.AutoFit
Cells.HorizontalAlignment = xlCenter
Range("B1").Select
End Sub
Sub 印刷処理()
Const 日付個所 As String = "A1" ' 環境に合わせて下さい
Dim 行 As Long
Sheets(印刷シート名).Select
For 行 = 1 To Sheets(日付シート名).Cells(Rows.Count, 2).End(xlUp).Row
If Sheets(日付シート名).Cells(行, 2).Value = 1 Then
Range(日付個所).Value = Sheets(日付シート名).Cells(行, 1).Value
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If
Next
End Sub
No.2
- 回答日時:
こんばんは、先の回答にもあるように、行いたい事は、処理の自動化なのでマクロで処理する必要があります。
ご質問の中に、マクロやVBAと言ったキーワードがないので、りんご315さんにその知識があるか不明です。
しかし、初めからプログラムを考えられる人はいませんし、コードを書ける人もいません。このような事がきっかけになる事も
少なくないと思います。
もし、マクロをご存知がなく、挑戦してみようと言う事であれば、手助けをいたします。
マクロやVBAの導入などに興味がなければ、下記は読み飛ばしてください。
基本的に導入方法を知らなくては始まりません。
< Excelマクロ導入方法 >で検索してみてください。
記録方法は、< Excelマクロの自動記録 >で検索してざっくり学習しましょう。
実際に実験します。
記録ボタンを押してシートを選択、セルを選択、何かを入力を何回か行い、記録終了
何やら、VBEに記録される事を確認します。(内容は、ざっくりこの操作が、これかな位で)
ここまでで、1時間くらいでしょうか。
深く理解する為には時間がかかります。しかし、深く知る必要は、必要がある時にすれば良いと思います。
つまり、やり方や内容が分からなくなったら、また立ち返り学習すれば良いと思います。
単純な作業の繰り返しであれば、さほどマクロの知識がなくても記録機能を活用して合理化できます。
さて、ご質問のマクロは、単純作業と言うわけではありません。しかし、難しさで言えば、初級のレベルで十分実現できると思います。
記録方法が分かったら、今回の作業を実際に記録してみましょう。
ご質問にあるB列の1を判断し指定した日付を・・は、自動記録では実行が困難なので、単純に1枚だけ印刷する作業を記録します。
手順
日誌のテンプレートのシートを表示しておきます。
マクロの記録
シート1 を選択 > 印刷したい日付(A列)セルを選択 > Ctrl+C(又は右クリックからコピー) > 日誌のテンプレートのシートを選択 >
そこの日付部分セルを選択 > ペースト Enterを押す (又は右クリックから貼り付け又は形式を選んで値貼り付け)>印刷
シート1 を選択 > 次に印刷したい日付(A列)セルを選択 >・・・ペースト Enterを押す >印刷 2回やったら記録終了
上記を実際に記録するとこんな感じ
<仮定>
日誌のテンプレートシートのC4が日付入力セル
シート1のA4セルある日付をコピーして印刷、次にA10セルの日付をコピーして印刷。
Sub Macro1()
'
' Macro1 Macro
'
'
Sheets("シート1").Select
Range("A4").Select
Selection.Copy
Sheets("日誌のテンプレート").Select
Range("C4").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("シート1").Select
Range("A10").Select
Selection.Copy
Sheets("日誌のテンプレート").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End Sub
私は、Msdnみたいなサイトなら環境情報や検証コードの提示を求めたりしますが、
このサイトでは、幼稚園、小学生(VBA初心者に)に高校生レベルの質問をしなさいとは言いませんので、
もしチャレンジする気があれば、実際に記録したマクロを補足に上げてください。(私も考える事を放棄した質問には気が向かなければ回答しませんので)
条件で実行する部分などをアドバイスいたします。(時間的タイミングが合えば)
冒頭に検索して学習してくださいとしました。これは、最低限覚えて頂く為のものです。
私的な考えですが、スクリプト系で質問サイトに投稿されているその殆どは、学習の為投稿しているとは、思っていません。
なぜなら、問題の解決が目的だから、
学習目的であれば、基礎的な知識がある場合、調べた方が早いですし、自ずと実験、検証が必要になるので、関連学習も出来るからです。
No.1
- 回答日時:
マクロで処理することになりますね。
マクロについて分からないのであれば、一つずつ手作業で印刷を行うようにしましょう。
だれかに代わりにマクロを作ってもらっても、仕様…条件…が変わった時に自分で直せないだろ?
それにここは「代わりに作ってください」と作成代行する場所じゃないんだ。
自力で解決できるようにするためのアドバイスをする場所です。
「マクロで印刷する日付を見つけるアルゴリズムが分かりません」
など、分からない点を具体的に聞かれれば、相応な回答が返ってきますよ。
・・・
それでも、一通りのマクロを書いて示す人はいますけどね。
ありがとうございます。自分で調べて、実際にエクセルをマクロでいじってみたのですが、行き詰まってしまい、質問してしまいました。自分で知識を深めたいと思います。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 請求書と領収書の作成 4 2022/11/10 16:13
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) セルによって印刷するシートを変える方法 EXCEL-VBA 2 2022/08/01 20:48
- Excel(エクセル) 【Excel】複数シートがあるエクセルデータで片面印刷と両面印刷設定がシートごとに入 1 2023/03/10 15:25
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
このQ&Aを見た人はこんなQ&Aも見ています
-
日付だけを変更して印刷(Excel)
Excel(エクセル)
-
1ヶ月分の日付を一度に出す方法はありますか?
その他(パソコン・スマホ・電化製品)
-
日誌を作るため印刷時に日付をずらしたい
その他(Microsoft Office)
-
-
4
エクセル 平日のみ連絡印刷
Excel(エクセル)
-
5
エクセルVBAで日報自動印刷
Access(アクセス)
-
6
エクセルで日付を変えて印刷したい
Excel(エクセル)
-
7
土日祝を省いた印刷
Excel(エクセル)
-
8
EXCELで1ヶ月分の連続した日付をシート名+セルに表示させたい
Excel(エクセル)
-
9
今日の日付の範囲を指定して印刷する方法について。
Excel(エクセル)
-
10
エクセルの表の印刷、一枚に毎月印刷したい
Excel(エクセル)
-
11
条件によって印刷するシートを変える方法 EXCEL-VBA
Excel(エクセル)
-
12
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
13
エクセル印刷時 一枚の書類に印刷枚数分の連続番号を振るには?
Excel(エクセル)
-
14
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
15
Word:日付を入れ替えながら印刷したい
その他(Microsoft Office)
-
16
VBAで当月の1日を表示するにはどの様なコードを使えば宜しいのでしょうか
Visual Basic(VBA)
-
17
エクセルで日付連続印刷
Excel(エクセル)
-
18
VBA 別シートの同じ日付の欄に値を貼付け
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 日付 指定 連続印刷
-
Google Street Viewで進むとコ...
-
写真に日付を入れて印刷したい
-
同級生の顔を使ってエロ画像を...
-
pixivの画像を保存しようとした...
-
光学顕微鏡についてです。 接眼...
-
iPhoneで写真を撮りました。 端...
-
プリント画面の丁合いとはなん...
-
画像を指定のサイズ(cm)で印刷...
-
横長の画像を縦長にしたいので...
-
至急回答お願いします、彼氏に...
-
証明用写真の作り方をお教えく...
-
結婚して2ヶ月の旦那のスマホの...
-
友人からのペットの遺体の画像...
-
9枚の写真をA4 1枚に
-
至急です!!答えてくださいお願...
-
セブンイレブンにあるマルチコ...
-
スマホの写真を添付し、楽天で...
-
コンクリートが茶色になってし...
-
ドライブレコーダーの画像を鮮...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル 日付 指定 連続印刷
-
スマホ本体からSDカードへ移...
-
Google Street Viewで進むとコ...
-
デジカメの日付表示を消す方法
-
CD-Rを作成した日を知る方法は...
-
日付入り写真をエクセルに貼り...
-
デジカメで撮影した写真に、日...
-
Word:日付を入れ替えながら印...
-
日付入りで撮影した写真を、印...
-
デジカメで撮影した画像の日付変更
-
EOS kiss の日付が表示されなく...
-
パソコンで『日付』の入力
-
写真の日付を印字しない方法
-
デジ1眼で撮った写真の分類の仕方
-
コンタクトシートでExif情報も...
-
エクセルについて教えて下さい!
-
ヘッダ[送信日時]の編集
-
写真に日付を入れて印刷したい
-
エクセルで曜日を入れたい
-
日付までコピーしたい
おすすめ情報
回答を下さった皆様、ありがとうございます。
言葉足らずで申し訳ありません。マクロやVBAは、簡単なものであれば、日常業務で使用しておりました。今回、もっと知識を深めたいと思い、VBAをもっと勉強したいと考えております。 ご丁寧に教えて下さり感謝致します。ありがとうございました。
ご回答下さった皆様
凄く大変なVBAのコードを教えてくださった方
また、ご丁寧に教えてくださった方
内容を熟読してから、改めてお礼させて頂きたいと思います。 知識不足の私の為に、ありがとうございます。皆さんのご回答、大変勉強になります。