• 締切済み

特殊フォルダへのファイルコピー

win10 ofice2016 ユーザレベル:Administrator パソコン利用者に、共通で使用するプログラムのコピー及び起動の設定をexcelマクロで対応しています。 Win10のRS5バージョンアップの影響か、従来動作していたマクロが動作しなくなりました。 c:\A\B.bat を スタートメニュー及び、共通ディスクトップにコピーするマクロ で下記の内容です。 Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFile Source:="C:\A\B.bat", Destination:="C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\InspecStart.bat" FSO.CopyFile Source:="C:\A\B.bat", Destination:="C:\Users\Public\Desktop\InspecStart.bat" Set FSO = Nothing 上記実行で 実行時エラー'70': 書き込みできません とのエラーが出てしまいます。 ちなみに ' FSO.CopyFile Source:="C:\A\B.bat", Destination:="C:\work\B.bat" はコピーできます。 また、エクスプローダ上でのコピーはできます。 このフォルダへのコピーは管理者権限が必要です。 と表示され、続行でコピー可です。 ファイルのコピーを手動でやれば済むのですが、パソコン等はリースです。 リース更新時に沢山の設定するのは手間なので、特殊フォルダへのコピーを簡単に対応可能な手段があればとのおもいです。 excelマクロにはこだわりませんが、サーバからのファイルコピー等はマクロで実行するので、一緒に起動用のファイルをコピーで対応できたらと思った次第です。 サーバからファイルをc:\A配下へコピー。 Aフォルダ配下の起動ファイルを特殊フォルダ2ケ所に設定したいのです。 よろしくお願いします

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.1

過去に、 https://okwave.jp/qa/q9627526.html といった対応を紹介しました。 いかがでしょうか?

3620313
質問者

お礼

回答ありがとうございます。

3620313
質問者

補足

過去の参照結果でやってみましたが、エラー解消されません (1) 手順1 次のようなコマンドを実行するbatファイルを用意 start excel C:\work\TEST.xlsm 手順2 このbatファイルのショートカットを作成 手順3 このショートカットのプロパティ、ショートカットタブ、 詳細設定ボタンで管理者として実行をオン 手順4 このショートカットを実行 手順5 起動したエクセルで課題マクロを実行 → 結果 状況変わらず 実行時エラー'70': 書き込みできません となります。 (2) Sub Sample()  Dim WSH, wExec, sCmd As String, Result As String  Set WSH = CreateObject("WScript.Shell")  sCmd = "copy C:\A\B.bat C:\Users\Public\Desktop\a.bat"  Set wExec = WSH.Exec("%ComSpec% /c " & sCmd)  Result = wExec.StdOut.ReadAll  Debug.Print Result End Sub を実行でイミディエイトに コマンドの構文が誤っています。 と表示されます

関連するQ&A

  • VBSで作成したフォルダにファイルをコピー出来ない

    いつもお世話になっております。 表題に関してなのですが、VBSでFileSystemObjectを利用してフォルダを作り、 そのフォルダにファイルをコピーするという内容のスクリプトを作成しています。 ですが、フォルダは無事に出来るのですが、ファイルをコピーしようとすると、 「書き込み出来ません」 と出て、コピーされません。 fso.CopyFileのところで、エラーが発生してるようです。 CopyFileメソッドの代わりにCopyコマンドで実行するように記述すると 問題なくコピーされます。 解決方法等ございましたら、ご教授ねがいます。

  • 同じ名前のフォルダを作るbatファイルを教えて

    フォルダ名と同じ名前のフォルダを作るbatファイルを教えてください フォルダAの中にフォルダB、フォルダC、・・・といくつかのフォルダがあります。 フォルダAの中にbatファイルを入れて実行すると、 フォルダB、フォルダC、・・・と同じフォルダをデスクトップに作る。 元々のフォルダB、フォルダC、・・・の中にあるファイルはコピーされてない。 このようなことが出来るbatファイルをお教えください。

  • VBAでファイルをコピー

    Aというフォルダの配下に、B,Cというフォルダがあります。 Bには、b1ファイルとb2ファイルがあり、 Cには、c1ファイルがあります。 Aフォルダにa1ファイルをおき、a1ファイル内にある ボタンを押すと、Bフォルダのb1ファイルとb2ファイル Cフォルダのc1ファイルをすべてAフォルダ直下にコピーする ようにするにはどうすればいいでしょうか? dosコマンドで実行するようにはできるかと思いますが vbaでやる方法を教えて下さい。

  • VBA バッチファイルでコピー出来ない

    以下のマクロを作りましたが、うまくいきません。 フォルダBにあるバッチファイルを実行するだけのマクロで、バッチファイルはフォルダAにあるファイルを自身のフォルダつまりフォルダBにコピーするものです。 マクロ Sub Test() Dim Str As String Str=shell(folderB\batch.bat, vbnormalfocus) End sub Batch.batの中身 Copy folderA\fileA . 注:folderAやfolderBはそれぞれのフォルダのフルパスです。 実行すると、何故かフォルダBでなくてデスクトップにコピーされます。バッチファイルをクリックして直接起動すると、目論見通りフォルダBにコピーされます。コマンドプロンプトからフォルダBに移動し、バッチファイルを起動しても、目論見通りフォルダBにコピーされます。 マクロから起動した時だけ、どうしてデスクトップにコピーされるのでしょうか?

  • VBA バッチファイルでコピーできない

    この質問は直近で出した質問を誤って締め切ってしまったため、再質問として書いてます。 以下のマクロを作りましたが、うまくいきません。 フォルダBにあるバッチファイルを実行するだけのマクロで、バッチファイルはフォルダAにあるファイルを自身のフォルダつまりフォルダBにコピーするものです。 マクロ Sub Test() Dim Str As String Str=shell("""" & folderB\batch.bat & """", vbnormalfocus) End sub Batch.batの中身 Copy "folderA\fileA" . '見えにくいですが、最後にピリオドがあります。 folderAやfolderBはそれぞれのフォルダのフルパスです。パスに空白を含むため " で囲むようにしてます。 実行すると、何故かフォルダBでなくてデスクトップにコピーされます。バッチファイルをクリックして直接起動すると、目論見通りフォルダBにコピーされます。コマンドプロンプトからフォルダBに移動し、バッチファイルを起動しても、目論見通りフォルダBにコピーされます。 マクロから起動した時だけ、どうしてデスクトップにコピーされるのでしょうか?

  • ひとつのファイルを一括で複数のフォルダにコピーする方法はありませんか

    A・B・Cと親フォルダの配下にならんでいるフォルダに、ひとつのファイルをA・B・Cのフォルダ全てにコピーしたいのですが、良い方法はないでしょうか。 Ctrlキーを押しながらフォルダを全て選択してコピーしてみましたが、一番上のフォルダにしかコピーされていませんでした。 よろしくお願いします。

  • 1つ下のファイルをコピーするバッチファイル

    コマンドプロンプトで実行するバッチファイル(x.bat)で C:\Aというフォルダのさらに1つ下のフォルダ (このフォルダは1つのみで名前は毎回変化します) の中にあるc.mpgというファイルを D:\Bフォルダにコピーするバッチファイルを 作りたいのですがどのように記述すればよいのでしょうか。 例えば、C:\A\data_20120922195626というフォルダ (data_20120922195626というフォルダ名は任意の名前ですが C:\Aフォルダの中にはこのフォルダ1つしかありません) の中に\c.mpgというファイルがあるとします。 バッチファイル x.bat を実行すると D:\Bフォルダにc.mpgをコピーしたいのです。 なお、data_20120922195626というフォルダの名前は バッチファイルを実行する時には毎回異っていますが バッチファイル実行中は変化しません。 VBscriptやwshなどは使わずWindosXPの標準DOS機能のみで お願いします。(WindosXP SP3)

  • batファイルで親フォルダのコピー

    素人で大変申し訳ございません。 batファイルについて教えてください。 ・「batファイルがあるフォルダ」の一つ上の階層にある「hoge」フォルダを  「hoge_bak」にして、「batファイルがあるフォルダ」にコピーしたい ・相対パスで指定したい。 ・コマンドプロンプトではなく、「bat」ファイルで作成したい のですが、batファイルの書き方がわかりません。 ご存知の方、batファイルに書く「ソース」を教えて頂きたいので よろしくお願いします。 ※ネットで参考文献をいろいろ見たのですが、  私の知識が足りなさすぎて実現できませんでした。。。

  • フォルダ(ディレクトリ)構造をコピーするソフト

    フォルダ(ディレクトリ)構造のみコピーするフリーソフトを紹介ください。 例えば、フォルダAにフォルダBがあり、フォルダBにフォルダCがある場合、それと同じファルダ構成をもう一つ作りたいのです。 batファイルは使用しないものとします。

  • デスクトップ上に作業フォルダがあるか無いかの判断について

    デスクトップ上に作業フォルダがあるか無いかの判断について 以下、ファイルサーバ(Windows2003SV EE)にworkという共有フォルダがあり、 その配下に4つのファイル(BATとEXE)があります。 この4つのファイルをクライアントPCよりファイルサーバへUNC接続を行い、 クライアントPCに持ってくるのですが、その際、クライアントPCのデスクトップ上に 作業用フォルダを作成(以下の例ではwork)し、その配下へ4つのファイルをコピー しAAAとBBBを移動.BATを起動(AAA.BATとBBB.EXEはWindowsフォルダ配下へ)、 DELFOLDER.BATを起動すれば、workフォルダが削除されるという作りになっています。 しかし、作業者がworkフォルダの作成を忘れてしまい、デスクトップ上にコピーして しまった場合にDELFOLDER.BATを実行されると、IE、マイドキュメント、マイネットワーク ゴミ箱以外は全て綺麗に消えてしまいます。これでは非常に都合が悪いです。 そこで、デスクトップ配下にコピーした場合はフォルダを消さないで、自分自身のみを 削除する、workフォルダを作成されている場合は、workフォルダを削除する方法を 教えて下さい。バッチだけではムリであれば、可能な方法を教えて下さい。 ■フォルダ構成 ○ファイルサーバ(192.168.1.253) └work ←ここを共有している    └AAA.BAT    └BBB.EXE    └AAAとBBBを移動.BAT    └DELFOLDER.BAT ○クライアントPC(\\192.168.1.253\workで4ファイルをコピー) └デスクトップ     └work←これは作業用のフォルダ     └AAA.BAT→実行はしない     └BBB.EXE→実行はしない     └AAAとBBBを移動.BAT→AAA.BATとBBB.EXEはWindows配下へ移動,移動後、自分自身を削除     └DELFOLDER.BAT→自分自身の上のフォルダ(workになる)を削除するBAT

専門家に質問してみよう