![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
vbsのcopyhere関数でファイルのコピーを行うスクリプトを作成しました。コピー自体は問題なく出来るのですが、コピー元のファイルが存在しなかった場合は何も実行されないまま次の処理へ行ってしまうので、そういう場合にエラー用の処理をさせたいと考えてます。
Errメソッド使えばいいと思うのですがうまくいかなかったのでご教授ください。
試しに作成したvbs-----------------------------------------
On Error Resume Next
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(strTargetFolder) 'コピー先フォルダの設定
objFolder.CopyHere strCopyFile , &H10 '
set objShell = Nothing
'コピーが失敗した場合に実行させる。
if Err.Number <> 0 Then
MsgBox "インストーラーをコピーできませんでした。","コピーに失敗しました"
WScript.Quit
end if
↓正常にコピー完了した後の処理
これでは上手くいきませんでした。
どうすればエラー時の処理を追加できるでしょうか?
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
errコードの帰りが0なので処理が実行されないのです。
set objShell = Nothing の次に
msgbox err
と一行入れて試してください。
0が帰ってくるはずです。
これでは On Error Resume Nextにひっかりません。
こういう場合は FileExists も使えないので
元のフォルダーにいくつファイルが入っているかを
調べて何もない場合に処理を実行する必要があります。
コピー元のフォルダのフォルダオブジェクトをつくって
そのオブジェクトのitemsメソッドでフォルダーの中身を取得します。
たとえば
strTargetFolderの設定が書かれていないので既知のフォルダーだとして
下記xxxxを入れ替えで
Set strOrigFolder = objShell.NameSpace(xxxx) 'コピー元フォルダの設定
Set objFolderItems = strOrigFolder.Items()
if objFolderItems.count=0 then 'countでファイルの個数を知る
MsgBox "ファイルが存在しませんでした。","コピーに失敗しました"
WScript.Quit
end if
でどうでしょう。
if Err.Number <> 0 Then
のスクリプトもエラー時に必要ですので残します。
実際に組んで実行していませんので保証はできません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) マクロの付いたExcelが開けません 3 2023/02/01 10:54
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ひとつのファイルを一括で複数...
-
XCOPYで指定したフォルダとファ...
-
Windows10 で登録した外字を他...
-
パソコン、ワンドライブをプリ...
-
DOSコマンドでファイルをコピー...
-
SDカードをパソコンに落とす...
-
VBAでネットワークコンピュータ...
-
DVD-RAMからDVD-Rにコピーする...
-
特定の拡張子だけディレクトリ...
-
複数のフォルダへ同時にファイ...
-
robocopyでフォルダ自体のコピ...
-
"コピーできないプロパティ"が...
-
これDO台
-
Windows10使用中。「同名ファイ...
-
エクセルに添付された画像をフ...
-
コピーエラーが起きないように...
-
VBAマクロ 実行時エラーが出た...
-
複数のPCへファイルをコピーす...
-
ファイルコピーせずフォルダの...
-
ファイル名の順番通りにコピー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ひとつのファイルを一括で複数...
-
複数のフォルダへ同時にファイ...
-
XCOPYで指定したフォルダとファ...
-
DOSコマンドでファイルをコピー...
-
Windows10 で登録した外字を他...
-
パソコン、ワンドライブをプリ...
-
VBAマクロ 実行時エラーが出た...
-
SDカードをパソコンに落とす...
-
DVD-RAMからDVD-Rにコピーする...
-
ファイルのコピー正常終了を確...
-
robocopyでフォルダ自体のコピ...
-
コピー先フォルダの更新日時を...
-
ファイルコピーせずフォルダの...
-
ROBOCOPYで移行元と先でサイズ...
-
フォルダの日付を変更せずにコ...
-
エクセルに添付された画像をフ...
-
VBAでネットワークコンピュータ...
-
ファイル 「送る」と「コピー...
-
ファルダだけコピー
-
外付HDDにフォルダーが作れず、...
おすすめ情報