• ベストアンサー

エクセル2010のVBAを使ってバックアップ

エクセル2010のVBAを使ってバックアップを取れる仕組を作っています。 Sub backup() Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFile "C:\data\*.xls", "C:\back\" Set FSO = Nothing End Sub 実際にバックアップを取りたい元データはマイドキュメントにあります。 また、複数のパソコンで実行したいのですが、 C:\Documents and Settings\ログインユーザー名\MyDocuments\ このログインユーザー名がバラバラです。 データ元のパスはどのように取得すれば良いでしょうか? 教えて下さい。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

こんな感じでやれば自分のマイドキュメントのPathが取得できます。 Dim sPath As String, WSH As Variant Set WSH = CreateObject("WScript.Shell") sPath = WSH.SpecialFolders("MyDocuments") & "\" Set WSH = Nothing ところで……。例として挙げただけだとは思いますが、↓これ、意味ないですよ。 > FSO.CopyFile "C:\data\*.xls", "C:\back\"

BighooterV
質問者

お礼

お礼が遅れてすみません。 昨日回答を見て検証していました。 ありがとうございます。 うまく動きました。 Sub backup() Dim FSO As Object Dim sPath As String, WSH As Variant Set WSH = CreateObject("WScript.Shell") sPath = WSH.SpecialFolders("MyDocuments") & "\*.xls" 'MsgBox sPath Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFile sPath, "C:\back\" Set FSO = Nothing Set WSH = Nothing End Sub

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

ごめんなさい、最後の1文ですが、こちらの勘違いです。 同じフォルダコピーしているように見えたのですが、ちゃんと「data」フォルダから「back」フォルダへコピーしていましたね。 失礼しました。

関連するQ&A

専門家に質問してみよう