• ベストアンサー

ブックを開いたとき自動的にバックアップを取るマクロはどうするのですか?

Windows 2000,Excel 2000使用 共有で使用するブックを作成したのですが、なにかの問題でデータが壊れるといやなので、できればブックを開いたときに裏で自動的にバックアップを取るマクロというのは作れるのでしょうか? どうしてもうまくできなくて...よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.4

> [ツール]-[マクロ]-[マクロ]でauto_openを実行すればうまくいくのですが、 > ブックを開いたときは更新されません。 そのブックを開くとき、他のVBAコードから開いていませんか? コードからブックを開いたときは、Auto_Open に記述したコードは、実行されません。 > このマクロは「Thisworksheet」、「標準モジュール」のどちらに記述すれば良い > のでしょうか。 「ThisWorkbook」の Open時イベントに記述すると、「標準モジュール」の Auto_Open より優先されて実行されます。 > 開く前にバックアップしたかったのです。 使用前のバックアップが目的であれば、ThisWorkbookクラスのOpen時イベントで 「バックアップファイル」を作成する方法が適当かと思いますが、如何でしょうか。 下記コードを記述すると、開いたとき、そののブックと同じフォルダに 「何々のバックアップ.xlk」という「バックアップファイル」が出来ます。 Private Sub Workbook_Open() Dim FName As String FName = ThisWorkbook.FullName Application.DisplayAlerts = False ActiveWorkbook.SaveAs FName, CreateBackup:=True Application.DisplayAlerts = True End Sub

39call
質問者

お礼

ご連絡遅くなりました。 thisworksheetsに記述したら、無事バックアップを取ることが出来ました。 これで一安心です。ありがとうございました。 またよろしくお願いいたします。

その他の回答 (3)

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.3

私の場合は標準モジュールに書いてあります。 普通にオープン時に実行されています。 他のマクロの関係で、実行されないのであれば、私の手におえません。

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.2

このマクロでどうでしょうか。 Sub auto_open() Dim vvv As String Dim xxx As String vvv = ThisWorkbook.Name '****.xls xxx = Left(vvv, Len(vvv) - 4) & "_OLD" '****_OLD Application.DisplayAlerts = False '保存確認のメッセージを出さない On Error GoTo 888 Workbooks.Open Filename:=xxx & ".xls" ActiveWorkbook.SaveAs _ Filename:=xxx & "_OLD.xls", _ FileFormat:=xlWorkbookNormal Workbooks(xxx & "_OLD.xls").Close 888: ThisWorkbook.Activate ActiveWorkbook.SaveAs _ Filename:=xxx & ".xls", _ FileFormat:=xlWorkbookNormal ActiveWorkbook.SaveAs _ Filename:=vvv, _ FileFormat:=xlWorkbookNormal Application.DisplayAlerts = True End Sub このマクロの動作を説明します。仮にABCという名のエクセルファイルを開くとします。 ABC_OLD.xlsというファイルをカレントフォルダで探します。 ABC_OLD.xlsが有ったら、ABC_OLD_OLD.xlsというなで、ファイルをセーブします。 ABC.xlsのファイルをABC_OLD.xlsという名で、セーブします。 このマクロを使うと、ファイルオープン時に時間がかかるようになります。

39call
質問者

補足

ありがとうございます。 [ツール]-[マクロ]-[マクロ]でauto_openを実行すればうまくいくのですが、ブックを開いたときは更新されません。 このマクロは「Thisworksheet」、「標準モジュール」のどちらに記述すれば良いのでしょうか。 それと「標準モジュール」には「他の人が開いていたら開かない」「ユーザフォームを表示する」が既に入っています。 すいませんが、よろしくお願いいたします。

  • fever
  • ベストアンサー率43% (32/73)
回答No.1

自動バックアップを取るのは、開いた時じゃないと駄目なのでしょうか? 保存時にバックアップを取る方法なら簡単にあるのですが、それでは駄目なのでしょうか?

39call
質問者

補足

ありがとうございます。 自分がデータを壊すときはファイルを開いて何かしているときが多いので、開く前にバックアップしたかったのです。

関連するQ&A

  • 自動バックアップソフトを探しています

    エクセルブックを数名で共有しています。 エクセル自体の不安定さもあり、複数のバックアップ体制を 作りたいと考えています。 方法1 エクセルに標準の自動バックアップを使う 方法2 手動で思いついたときにバックアップする 上記2つに加えて、フリーソフトなどで自動バックアップさせたいです。 ミラーというのでしょうか、誰かがデータ変更したらすぐさまバックアップしてくれるものが良いです。 いろいろ探してみましたが、万が一もとのデータを消してしまったら、瞬時にミラーしたデータを複製して回復するという条件をクリアできるものが見つかりません。よいソフトがあれば教えてください。 できればフリーで、予算は5万円以内を希望します。

  • 個人用マクロブックが開けない

    Windows XPでMicrosoft Office Excel2003を使用しています。マクロを記録したいのですが、「個人用マクロブック」を選択すると、「起動フォルダにある個人用マクロブックは、記録のために開かれた状態でなければなりません」という表示が出てきます。一昨日までは問題なくできていたことが突然こうなりました。いつもはエクセルのファイルを開くと自動的に「PERSONAL」という表示がメニューバー(スタートキーがある列)にありました。当然今はありません。困っています。誰か回復方法を教えて下さい。

  • Excel 2007: マクロブックをXLSTARTに入れると挙動がおかしくなる?

    いつもお世話になります。 マクロの配布を容易にするため、ブックにマクロを添付して、  C:\Documents and Settings\ユーザー名\   Application Data\Microsoft\Excel\XLSTART に置いてください、と言おうと思っているんですが、これに関連して以下のようなことが起きます。 (1)個人用マクロブックを作るとExcelが一発で閉じなくなる Excelでマクロを作って、個人用マクロブックに保存すると、以下のブックができる。  C:\Documents and Settings\ユーザー名\   Application Data\Microsoft\Excel\XLSTART\PERSONAL.XLSB このファイルができると、以下のように挙動が変わる。 1) 適当なブックをダブルクリックすると、Excelが起動し、そのブックが開く。 2) ウィンドウ右上端の[X]ボタンをクリックしてExcelを閉じようとすると、ブックだけが閉じて、Excelは終了しない<=ここが問題 3) もう1回[X]ボタンをクリックすると、Excelは終了する (2)任意のマクロ付きブックをXLSTARTに入れると、新規文書が開かなくなる Excelでマクロを作って、任意のブックに保存する。 Excel 2007で使う人と、2003で使う人がいるので、xlsで保存する。 ブックを非表示にして、XLSTARTディレクトリに入れると、個人用マクロブック同様にExcel起動時に開かれるので、マクロが使える。 こうすると、上の(1)の現象に加えて、さらに、以下の現象が発生する。 1) Excelを起動すると、通常は白紙の新規ブックが作成されるが、なぜか作成されず、Excelのみが起動される。 以上です。 任意のマクロブックをXLSTARTに入れながら、起動時に白紙のブックが開き、[X]クリックでExcelが一発で終了する方法はあるでしょうか。 よろしくお願いいたします。

  • マクロのバックアップについて

    Windows XPでMicrosoft Office Excel2003を使用しています。Windows XPを再セットアップ予定です。ついてはマクロ記録をバックアップしたと思います。 マクロ作成の際「個人用マクロブック(PERSONAL.XLS)」に記録した場合は以下のファイルに含まれています。 C:\Documents and Settings\ユーザ名\Application Data\Microsoft\Excel\XLSTART\PERSONAL.XLS ということを教えてGooで教わりましたが、\ユーザ名\Application となりません。ユーザー名の後がデスクトップやマイドキュメントなどが表示されます。どうしたらよいでしょうか。教えて下さい。

  • エクセル バックアップファイルの自動更新

    私の会社では、簡単なデータはエクセルで管理しておりまして、 そのエクセルファイルを会社の皆が共有できるように、社内の共有フォルダーに入れています。 しかし、先日誤って新入社員がそのファイルを消してしまいました。 今後は、バックアップファイルを作成し、データファイルの管理をしようと思うのですが、データは毎日変更、追加しますので、 バックアップファイルも同時に自動更新できるようにする必要があります。 バックアップファイルが常に自動更新され、たとえ元データ(ファイル)が消えてしまっても、問題なくバックアップされた状態にするには、どのようにしたら良いでしょうか? どうぞよろしくお願いいたします。

  • Excel個人用マクロブックが自動起動しなくなりました。

    Excel個人用マクロブックが自動起動しなくなりました。 Excelで個人用マクロブックが自動起動しない現象が起きています。 D:\\Documents and Settings\\<user>\\Application Data\\Microsoft\\Excel\\XLSTART\\の中にPERSONAL.XLSは存在しているのですが、従来は起動していたのですがいつのまにか起動しなくなっていました。オプション「全般」の「起動時に全てのファイルを開くフォルダ」が空白になっていたので、上記パスを入れてみましたが変わりありませんでした。また、個人用マクロブックに記録しようとすると「個人用マクロブックは記録用に開かれた状態になっていません」とエラーになります。手動でPERSONAL.XLSを開くとその時は使えるのですが、Excelを終了するとやはり次回から自動起動しません。 OSはWindows XP、Excel2007です。この現象の解決方法をご存知の方、助け下さい。 補足 前に同じような質問をしている方もいたのですが、Excel2003だったようで、回答をみてもしっくりきません。

  • ブックを開くマクロ

    データ管理というファイルの中にある データー(1)のファイルの中の データ表(1)というエクセルbookのあるマクロを実行すると 同じくデータ管理というファイルの中にある データー(2)のファイルの中の データ表(2)というbookを開き そのbookのsheet1のA1:B5をコピーして データ表(1)エクセルbookのsheet1のA1:B5に貼り付ける・・・ というVBAを組む事は出来ますでしょうか? 分かりにくくてすいません

  • 個人用マクロブック

    エクセル2007を使用しています。 個人用マクロブックにマクロを保存すると、開いていないブックでも使用できると学びました。 ただマクロの保存先が BOOK1 開いている全てのブック 作業中のブック、の3つしかありません。 どうすれば個人用マクロブックを作ることが出来るのでしょうか?

  • アドインマクロでマクロが使えない

    会社の共有フォルダで、マクロをアドインして、マクロを実行すると このブックでマクロが使用できないか、またはすべてのマクロが無効に なっている可能性があります とでてしまい使えないです。 マクロ作成者のパソコンからは使えるようなのですが、、 どうすればいいかわかるかた教えてください。 ちなみにエクセル2007です。

  • エクセル マクロ個人用マクロブックについて。

    エクセルのマクロでの個人用マクロブックでの保存がうまくできません。 表題の件で質問させてください。1台のPCにマクロを数項目登録して色々なエクセルで運用したいんですが 個人用マクロブックで登録するとマクロ作成済みのエクセルを開かなくても良いと知恵袋に見ましたので個人用マクロブックに 名前を入力してマクロ登録致しました。 実際3個作ったはずですがいちばん最初に作ったマクロしか選ぶことができません。どうしたらいいでしょうか? まれに全てのエクセルを閉じて再起動したりすると時たま他のマクロがある時もありますが5個に1回位です。 色々とマクロ作成して作業したいのですが作成したマクロが出てこないで困っています。 対処の仕方ご教授ください。 宜しくお願い致します。

専門家に質問してみよう