• 締切済み

パスを使ってファイルを開く

ファイルダイアログでパス取得を行った後に、 そのパスを使ってファイルをコピーということは出来るでしょうか? 行ってほしい動作としましては、 ・ファイルダイアログでパス取得 ・そのパスを使ってファイルをコピー としたいのです。 ちなみに、コピーするためのコードは Call Shell(Environ$("COMSPEC") & " /C COPY ""C:\AAA.xls"" Z:AAA.xls") といった、絶対パスによるコピーになっています。 何故、パス取得が必要かといいますと元ファイルの場所が変わることがあるからです。 どうしても分からないので方法あるようでしたら教えてください。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 >Environ$("COMSPEC") もしかして、OSのバージョンが変わるとか? >ファイルダイアログでパス取得を行った後に、 という感じでしたら、もう、オートメーション・オブジェクトで、作ったほうがよいですね。好き嫌いがあるでしょうから、なんとも言えないけれども。 Const ssfDRIVES = &H17 'マイコンピュータ Dim FileName As String  'ファイル名 Dim Sel_Folder As Object 'フォルダ・オブジェクト Dim Sel_Path As String  'パス名    'オープンファイルダイアログ  FileName = Application.GetOpenFilename _     ("Excel(*.xls),*.xls")  If FileName = "False" Then Exit Sub    'オートメーション・Shell のフォルダ取得  Set Sel_Folder = CreateObject("Shell.Application"). _  BrowseForFolder(0, "フォルダを選択してください", ssfDRIVES, &H0)    If Not Sel_Folder Is Nothing Then   Sel_Path = Sel_Folder.Items.Item.Path   Else   Exit Sub  End If '-------------------------------- こんな風にすれば取れるはずですから、当てはめればよいのですが、Copy コマンドは、Destination (送り先)側は、同じものなら、パス名だけでよいはずです。 それと、「絶対パスによるコピーになっています。」って、ロングネームで、スンナリ通りますか?私は、全部は書きませんから、ファイル名、パス名代入してみて、ダメだったら、また、レスをつけてください。

syuen206
質問者

お礼

お返事ありがとうございます。 書かれている方法を行おうかとしたところ別の作業をすることになり、 この方法を試すことができなくなってしまいました。 尚、この問題は他の方が別の方法により解決いたしましたので回答を締め切りたいと思います。 長い間返事が遅れてしまい申し訳ありませんでした。 今後同じようなことが起こった場合にWendy02さんの方法を試してみたいと思います。

関連するQ&A