
こんばんは。いつもお世話になっております。
今回も自力では解決出来なかった為、質問させていただきました。
やりたいこと
1.エクセルのBook1のsheet1(sheetの名前は''テンプレート'')には、情報を書き込んでいくだけのテーブルのテンプレートと、マクロが入っています。このテンプレートを自動で複製して同じBook内にsheet2を作成し、名前を''1月''とします。同様に、12月まで作成させます。
2.複製されるタイミングは月が変わった瞬間に作成されるようにしたいです。
3.sheetには毎日情報を書き込んでいくので、日付が変わったら自動でバックアップをフォルダAに作成されていくようにもしたいです。
よろしくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
とりあえず以下の仕様で作成してみました。
・ブックを開くタイミングでその月のシートが無ければシートのコピーを行う
・ブックを閉じるタイミングで、backup_yymmdd_を付加したバックアップを同じフォルダに作成する。
既にバックアップファイルがある場合は上書きします。
別のフォルダに作成するときは、変数pthの値を適宜変更して下さい。
下記はThisWorkbookに入力して下さい。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim pth As String
Dim fName As String
Dim fDate As String
Dim t As Date: t = Date
If Cancel Then
Exit Sub
End If
fDate = Right("0" & Year(t), 2) _
& Right("0" & Month(t), 2) _
& Right("0" & Day(t), 2)
pth = ThisWorkbook.path
fName = ThisWorkbook.name
Application.DisplayAlerts = False
ThisWorkbook.SaveAs (pth & "\" & "Backup_" & fDate & "_" & fName)
Application.DisplayAlerts = True
End Sub
Private Sub Workbook_Open()
Dim ws As Worksheet
Dim m As String
Dim wsExist As Boolean: wsExist = False
m = Month(Date) & "月"
For Each ws In Worksheets
If ws.name = m Then
wsExist = True
Exit For
End If
Next
If wsExist = False Then
ThisWorkbook.Worksheets("テンプレート").Copy _
before:=ThisWorkbook.Worksheets("テンプレート")
ActiveSheet.name = m
End If
End Sub
No.3
- 回答日時:
その Excel ファイルをずっと開きっぱなしにして、深夜も無人 (または 3交代制の担当 が) で 「何か」 が Excel ファイルにデータを書き込み続けるということなのだろうか。
それとも 「毎日情報を書き込む」 何かが 「『本日のお仕事開始』 とか言いながらファイルを開いた時」 なのだろうか。
「日付が変わった瞬間」 とは具体的にどの程度の精度が求められているのだろうか。
開きっぱなしかどうかにもよるが、
・ 毎回ファイルを開いた時にバックアップ済みかどうかと、現在の月のシートがあるかどうかの判断によって処理を行うようにするわけにはいかないのだろうか。
「毎日情報を書き込む」 ということは Excel 以外の何かが Excel の外からそのファイルに対して書き込むのだろうから、ずっと VBA で日付チェックをしているわけにはいかないだろう。
PC が起動している限りなるべく確実に毎日バックアップするのであれば、特定の名前のファイル (今回の Excel ファイル) を別のフォルダーにファイル コピーするスクリプトを書いて、そのスクリプトをタスク スケジューラーで実行させたほうが良い気がする。
No.2
- 回答日時:
> 特に月が変わったタイミングでシートを複製する所と、
現在の日付から、シート名("1月"など)の文字列を作って、そのシートが既にあれば何もせず、無ければ作る。
>毎日のデータを名前をつけて保存する所です。
案1:
データの保存は、毎回行う。ファイル名に日付を含ませて置くだろうから、同じ日の間は上書きされる。
案2:
日付が変わった段階で、前日までの分をバックアップしておきたいと言うことであるのなら、1日前の日付からバックアップファイル名の文字列(ファイル名に日付を含ませて置くだろうから)を作って、そのファイルがあれば何もしない。無ければバックアップする。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで日報を自動で作成したい 売上管理シートに入力した売上データを、日報に自動反映させたいと考 1 2023/04/29 18:07
- Excel(エクセル) エクセルカレンダーに予定表を反映したいです。 6 2022/09/30 14:39
- Excel(エクセル) Excel 売上管理シートに入力した売上データを、日報に自動反映させたいと考えています。 売上管理シ 3 2023/04/29 18:08
- JavaScript gasについて 1 2022/05/31 21:51
- 会計ソフト・業務用ソフト エクセルの文章の修正法について 3 2023/06/23 10:03
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
このQ&Aを見た人はこんなQ&Aも見ています
-
シートを追加・名前を次月に変更、前月内容を貼り付け
Excel(エクセル)
-
TODAY()で設定したセルの日付が変わったらマクロを実施させたい
Visual Basic(VBA)
-
Excelでシートに年月を自動で変更するやり方
Excel(エクセル)
-
-
4
エクセル:VBAで月変わりで、自動でシートを選択したい
Excel(エクセル)
-
5
Excelvbaでブックをコピー名前翌月に変更
Excel(エクセル)
-
6
Excelで日付変更ごとに、自動的にデータを転記
Excel(エクセル)
-
7
エクセル 日付が変わると同時にセルを空にしたいです
Excel(エクセル)
-
8
マクロボタンを押すと、ファイル名を“日付(年月日)_文字.xlsx”にして指定ファイルに保存したいの
Excel(エクセル)
-
9
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
10
Excel VBAで年度をまたぐ期間の月末日を求める方法
Excel(エクセル)
-
11
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
12
エクセルのシートコピーした際に数式を月移動したい(?)
Excel(エクセル)
-
13
EXCELで高さ0で隠れた行の素早く表示方法
Excel(エクセル)
-
14
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
15
VBAでセルに入っている日付をシート名にする
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
社内Excel共有ブックでの保存ト...
-
共有フォルダに誰が何にアクセ...
-
Batch: フォルダ内の特定のファ...
-
AccessVBAで作成したExcelファ...
-
VBAでCSVファイルが使用中かど...
-
相手のPCにVBAからメッセ...
-
月が変わったら自動でシートが...
-
Excel VBA 処理後データが重た...
-
(Excelマクロ)datファイルをエ...
-
Dream weaverで、誤ってファイ...
-
Access2003 デザインモードで...
-
JSONファイルの置き場所について
-
Access VBA を利用して、フォル...
-
【アクセス】「ほかのユーザー...
-
excelを共有ファイルにすると行...
-
ホームページ作成中に溜まる不...
-
仕事のファイルを共有フォルダ...
-
特定のエクセルファイルを起動...
-
拡張子が「cda」のファイルを聞...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
Batch: フォルダ内の特定のファ...
-
共有フォルダに誰が何にアクセ...
-
Access VBA を利用して、フォル...
-
VBAでCSVファイルが使用中かど...
-
AccessVBAで作成したExcelファ...
-
(Excelマクロ)datファイルをエ...
-
excelを共有ファイルにすると行...
-
【アクセス】「ほかのユーザー...
-
社内Excel共有ブックでの保存ト...
-
tmpファイル なぜできる?削除...
-
拡張子が「cda」のファイルを聞...
-
WEBクエリが使えない場合のHPデ...
-
月が変わったら自動でシートが...
-
Excel VBA 処理後データが重た...
-
ファイルの途中に文字列を挿入
-
相手のPCにVBAからメッセ...
-
mdbファイル フォームを開くと...
-
大量のCSVデータを行列の変換を...
おすすめ情報