EXCEL VBAでShell関数を用いファイルのコピーをさせたいのですが、引数の指定がうまくいかず困っています。
コピーは以下のZero.txtファイルをdouki.txtにコピーする単純なものです。
引数の記述でコピー元ファイルZero.txt、およびコピー先ファイルDouki.txtをフルパスで記述した場合(下記下から2行目)は問題なくコピーできるのですが、ThisWorkBook.Pathを使って記述したく、教えてください。
マクロ本体ファイルもZero.txtファイルもDouki.txtファイルも、いずれもC:\Testフォルダに格納されています。
直接フルパス指定では、フォルダ構成が変わるごとに都度コードを変更せねばならず、ThisWorkBook.Pathを使いたいと思っています。
いくつかトライした記述とその結果(コードの後ろにあるコメント(例)'コピーされない)を以下に記します。
ThisWorkBook.Pathを使った引数の記述方法をお教え願います。
<コード>
Dim Pname As String
Dim CSname As String
Dim CDname As String
CSname = ThisWorkbook.Path & "\zero.txt"
CDname = ThisWorkbook.Path & "\douki.txt"
Application.DisplayAlerts = False
Shell "C:\Windows\System32\cmd.exe /C Copy CSname CDname" 'コピーされない
Shell "C:\Windows\System32\cmd.exe /C Copy ThisWorkbook.Path & "\zero.txt" ThisWorkbook.Path & "\douki.txt" 'コンパイルエラーとなる
Shell "C:\Windows\System32\cmd.exe /C Copy" & CSname & " " & CDname 'コピーされない
Shell "C:\Windows\System32\cmd.exe /C Copy" & ThisWorkbook.Path & "\zero.txt" & " " & ThisWorkbook.Path & "\douki.txt" 'コピーされない
Shell "C:\Windows\System32\cmd.exe /C Copy C:\Test\zero.txt C:\Test\douki.txt" '正常(コピーされた)
Application.DisplayAlerts = True

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/29 05:26