- ベストアンサー
ファイルサーバーからローカルフォルダーに移動する方法
- VBAを使用してファイルサーバーからローカルフォルダーにデータを移動する方法について調べています。
- VBAのコードを作成して、CSV形式でデータをフォルダーに保存する方法を試しています。
- ローカルの「ダウンロード」フォルダーにデータを吐き出せないか試していますが、うまくいきません。お知恵をいただければ助かります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ダウンロードフォルダに出力したいなら、ダウンロードフォルダを指定しなければなりません。 Option Explicit ' Sub Macro1() Dim Rng As Range ' Set Rng = Selection Workbooks.Add Rng.Copy [A1] Application.DisplayAlerts = False ActiveWorkbook.SaveAs _ CreateObject("Shell.Application").Namespace("Shell:Downloads") _ .Self.Path & "\" & Replace(ThisWorkbook.Name, ".xlsm", ""), xlCSV ActiveWorkbook.Close False Application.DisplayAlerts = True End Sub
その他の回答 (3)
- asciiz
- ベストアンサー率70% (6803/9674)
>ただ、ダウンロードフォルダーではなくドキュメントフォルダーにCSVが作成されます。どこに問題があるのでしょうか。 うーん? 回答1・2、どちらでもですか? エクスプローラで、「ダウンロード」フォルダをクリックして、さらにアドレスバーをクリックすると、そこにはどのようなパス名が出てきますか? そのパス名に合わせてやればいいはずなのですけど。 テストとして、直接 fPath = "C:\Users\(ユーザー名)\Downloads\" とか書いてみたり、 fPath = "C:\temp\" とか書いて、c:\tempフォルダに保存できるかどうか、試してみるとどうなるでしょうか。
- f272
- ベストアンサー率46% (8467/18126)
いろいろなやり方があるが fPath = ActiveWorkbook.Path & "\" を fPath = CreateObject("Shell.Application").Namespace("shell:Downloads").Self.Path & "\" としてみるのでどうだろう。
- asciiz
- ベストアンサー率70% (6803/9674)
「ダウンロード」フォルダの実態は、典型的には「C:\Users\SUZUKI\Downloads」などです。 まあもちろんWindowsは必ず C: ドライブにインストールされるとは限りませんし、ログインしているユーザー名でフォルダ名も変わってしまいますが。 その違いを吸収するためにあるのが環境変数です。 ログインしているユーザーごとに自動的に値が設定されますので、これを使います。 HOMEDRIVE "C:" ←Windowsのインストールドライブ HOMEPATH "\Users\(ユーザー名)" ←ユーザー名が自動的に入る USERPROFILE "C:\Users\(ユーザー名)" ←上記2つを合わせた物 なので、 fPath = Environ("HOMEDRIVE") & Environ("HOMEPATH") & "\Downloads\" または fPath = Environ("USERPROFILE") & "\Downloads\" としてやれば良いでしょう。
補足
お知恵をありがとうございます。 ただ、ダウンロードフォルダーではなくドキュメントフォルダーにCSVが作成されます。どこに問題があるのでしょうか。 もしよろしければ、もう少しお付き合いして頂けますか。。
補足
お知恵をありがとうございます。 ただ、ダウンロードフォルダーではなくドキュメントフォルダーにCSVが作成されます。どこに問題があるのでしょうか。 もしよろしければ、もう少しお付き合いして頂けますか。。