情報と工夫で何とかやってみる(妥協点を見出す)ブログ

情報と工夫で何とかやってきた備忘録です。同じ悩みを抱えている人がいると思い、情報共有しようと思った次第です(尤も、このブログに辿り着いた時点でもう解決していると思いますが…)

情報と工夫で何とかやってきた備忘録です。同じ悩みを抱えている人がいると思い、情報共有しようと思った次第です。(尤も、このブログに辿り着いた時点では、もう解決されていると思いますが…)

ExcelVBA①(バックアップを作る)

 ExcelVBAを始める前に注意を1つ。「VBAで実行したことを元に戻せるかどうか?」です。WordやExcelには画面上部に「元に戻す」ボタンがあって戻せますが、VBAで実行したものについては、このボタンがグレーアウトしていて使えません。どうやら戻せないようです。(以下参照)
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1256843822?__ysp=RXhjZWwgVkJBIOaIu%2BOBmQ%3D%3D

 となると、こまめにバックアップを取る必要があるということになります。ということで例えば以下。昨日紹介したサイトの「VBEからマクロ作成を始める」まで進んだら、以下をペーストします。そして画面上部の「▷」をクリックすると、そのファイルのある場所と同じところに、ファイル名の後に本日の日付(年月日時秒)の数字を追加したファイルがバックアップされます。なお、ExcelVBAを使うには、拡張子が通常の[xlsx」ではなく、「xlsm」である必要があります。なので、バックアップするファイルの拡張子も「xlsm」にしてあります。

Sub Backupファイルを作る()

Dim name As String, path As String
name = Left(ActiveWorkbook.name, Len(ActiveWorkbook.name) - 5) 
path = ActiveWorkbook.path 
ActiveWorkbook.SaveCopyAs _
Filename:=path & "\" & name & Format(Now, "yyyymmddhhMM") & ".xlsm"

End Sub

いかがでしょうか? 私が勝手に、仕事につかえる「かもしれない」と思ったものなので、完全に、自分の忘備録的内容になっておりますが、「なるほど、ExcelVBAって、こういうことができるんだ」と興味を持っていただけたら幸いです。