久しぶりに、お世話になります。
下記のような記述をネット検索で見つけ引用して、Excelのファイルを開いた時に
自動でバックアップファイルを作成するようにしているのですが、ファイル名の前に月日時分の付いたバックアップファイルにしたいと思って、検索しましたが、検索方法が悪いのか、中々発見できず困っております。
どなたか詳しい方がいらっしゃいましたら、恐縮ですが、記述をご伝授ねがえないでしょうか。
よろしくお願い致します。
以下を「Thiswookbook」、モジュール「open」に以下をコピペして活用しております。
Private Sub Workbook_Open()
Dim FName As String
FName = ThisWorkbook.FullName
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FName, CreateBackup:=True
Application.DisplayAlerts = True
End Sub
No.4ベストアンサー
- 回答日時:
こんにちは。
開く時に使うわけですよね。
以下のコードは、開きながら、VBA外部で仕事をするので、すぐに開くはずです。
ファイルが大きい場合は、VBA自体のメソッドを使うと、時間が掛かることがあります。
これは、私がいつも使っているものを書き換えたものです。
'//
Private Sub Workbook_Open()
Dim objFso As Object
Dim mDate As String
Dim mPath As String
Dim Fn As String
mDate = Format$(Now(), "yyMMddhhnn") '年号は2桁にする/不要ならyyを取る
mPath = ThisWorkbook.Path
Fn = ThisWorkbook.Name
If Not Fn Like String(10, "#") & "*" Then '10桁をチェック/yyを取ったら8にする
'月日時分が先頭にある、バックアップは取らない
'=バックアップファイルからは、孫ファイルは作らない
'ただし、バックアップ名が同じであっても上書きする
Set objFso = CreateObject("Scripting.FilesystemObject")
objFso.Copyfile mPath & "\" & Fn, mPath & "\" & mDate & Fn
Set objFso = Nothing
End If
End Sub
早速のご回答ありがとうございました。
何と、動きの早いこと!
それに、孫ファイルが出来ないとは、素晴らしい!!
孫もひ孫も・・・出来るものと決めていて、思いも寄りませんでした。
思っていた以上のご回答ありがとうございました。
No.3
- 回答日時:
>バックアップファイルにしたい
マクロの使い方が間違っています。
「CreateBackup:=True」はバックアップとして保存する指定ではありません。
作成例:
private sub workbook_Open()
dim myFile as string
myfile = thisworkbook.name
if isnumeric(left(myfile, 14)) then
myfile = mid(myfile, 15, 99)
end if
thisworkbook.savecopyas thisworkbook.path & "\" & format(now, "yyyymmddhhmmss") & myfile
end sub
この回答への補足
補足の欄で申し訳ありませんが、この夏頃は、度々お世話になりありがとうございました。
今回も、またご回答いただきありがとうございました。
早速のご回答ありがとうございました。
試してみまして、思った通りの結果がでました。
その上、アドバイスも頂きありがとうございます。
お見事でした。
お忙しいところ、本当にありがとう御座いました。
No.1
- 回答日時:
もしかしてこういうことでしょうか?
元のファイル名が数値12桁だと使えませんが・・
Private Sub Workbook_Open()
Dim FName As String
If IsNumeric(Left(ThisWorkbook.Name, 12)) Then
FName = ThisWorkbook.Path & "\" & Format(Now, "yymmddhhmmss") & Mid(ThisWorkbook.Name, 13, Len(ThisWorkbook.Name) - 12)
Else
FName = ThisWorkbook.Path & "\" & Format(Now, "yymmddhhmmss") & ThisWorkbook.Name
End If
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FName, CreateBackup:=True
Application.DisplayAlerts = True
End Sub
早速のご回答ありがとうございました。
お礼、遅くなり申し訳ありません。
一番に回答頂き、ありがとうございます。
急きょの出張で遅くなりましたが、早速、試してみまして、
思った通りの結果となりまして、感激しております。
申し分御座いません。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/10 09:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL Server Management Studio ...
-
Access レプリカの具体的な使い方
-
SQLサーバのデータ保存先
-
PC iTunesに入れたバックアップ...
-
SQLserver2000 StandardEdition...
-
PCが悪くなって新しいPCにSSMS...
-
【DB】同じトランザクション内...
-
エクセルのフィルタ抽出が固まる
-
DATファイルをEXCELで開きたい
-
postgresql についてです
-
期限切れのバックアップの削除
-
復旧中のデータベースについて
-
トランザクションログの切り捨...
-
MS-Accessのエクスポートで異常...
-
マスタメンテとは?
-
dbFailOnError とは?
-
TPSとは・・・
-
tempdb の適切なサイズ
-
パラメーターエラーで復元でき...
-
富士通のオフコンの事でお聞き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL Server Management Studio ...
-
Access レプリカの具体的な使い方
-
SQLserver2000 StandardEdition...
-
データベースが大きすぎてリス...
-
SQLサーバのデータ保存先
-
SQL SERVER の復元でバージョン...
-
SQLServerのバックアップ
-
SQLServer2008 R2 バックアップ
-
復元を取り消したい
-
SQL Server エージェント ジョ...
-
SQLServer200 ストアドでデータ...
-
複数のデータベースのバックアップ
-
MySQL稼働中にDBのバックアッ...
-
SQL Server2000 バッチでデータ...
-
DB(データベース)のバックア...
-
mysqldumpで全データベースバッ...
-
バックアップ方法
-
PCと個人情報保護法にお詳しい方。
-
共有データーのバックアップに...
-
【DB】同じトランザクション内...
おすすめ情報