重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim wb As String
wb = Replace(ActiveWorkbook.Name, ".xls", "")
ActiveWorkbook.SaveCopyAs _
"E:\AAA\BBB\バックアップ" & "\" & wb & " " & _
Format(Now(), "yyyymmdd_hhmmss") & ".xls"
End Sub

バックアップを保存した時ごとに取りたいため、このようなコードをネットで拾ったのですが、
これだと、USB接続の認識がEの時しかバックアップが取れず、Fで認識した時や、その他の場合エラーになってしまいます。
それで、
EかFどちらかのAAA\BBB\のバックアップというフォルダに保存しなさい、
もしくは、元のエクセルファイル自体はBBBのフォルダにある為、
今あるファイルのフォルダの中にあるバックアップというフォルダに保存しなさい、
というコードを書きたいのですが、方法はありますでしょうか?
よろしくお願いします。

A 回答 (4件)

No.3への回答がないので



☆ドライブだけが同じ場合です。
-------------------------------------------------------------
「"E:\」を「Left$(ThisWorkbook.Path, 3) & "」に変えればよいと思います。

☆フォルダーも同じ場合
-------------------------------------------------------------
「"E:\AAA\BBB\バックアップ"」を「ThisWorkbook.Path」に変えればよいと思います。
    • good
    • 0
この回答へのお礼

ドライブだけが同じものを使ってうまくいきました!ありがとうございました。

お礼日時:2016/12/01 10:22

USBならばかなり簡単です。


もう一つ確認です。元ファイルもバックアップのフォルダーに有りますか?
    • good
    • 0
この回答へのお礼

バックアップのフォルダーにはないです。
バックアップデータを入れるファイルをCCCとすると、
E:\AAA\BBB\CCC になっています。
E:\AAA\BBB に元ファイルがあります。

お礼日時:2016/11/30 16:48

元々このコードが書かれているファイルは、どこにあるのでしょうか?


HDDでしょうか?それともUSBでしょうか?
    • good
    • 0
この回答へのお礼

USBになります。

お礼日時:2016/11/30 16:04

方法はあるだろうけど、バックアップをとりたいのに、EでもFでもなく、Zとかだったらどうするんですか?


素直に、そのシステムではEドライブを対象とするという実装のまま、そういうシステムなんだという理解のもとに、バックアップ先の媒体のドライブレターを変更する方が得策かと思います。
もしくは、Excelファイルを起動して操作しているわけですから、別シートなどを用意して、そのシート内で保存先を入力させるなどするとか。
    • good
    • 0
この回答へのお礼

zは社内ネットワークが常時あるので、基本的にはEかFになります。
私がいつも使う、もしくはエクセルファイルを使う方に知識があればいいのですが、実際ファイルを使うのが知識がない、ドライブレターを変更するのをうっかり書き忘れそうな方の為、そういったストレスが無い様にできるのがよかったのですが、無理でしょうか><

お礼日時:2016/11/30 16:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!