
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10 で登録した外字を他...
-
ひとつのファイルを一括で複数...
-
XCOPYで指定したフォルダとファ...
-
複数のフォルダへ同時にファイ...
-
VBAマクロ 実行時エラーが出た...
-
バッチでファイルをコピーしよ...
-
コピー失敗したファイルを知りたい
-
LinkStation・・・遅い~~~泣
-
XCOPYでコピーされるセキュリテ...
-
外付けHDDのデータ転送が遅い
-
エクセル VBA 別のフォルダの...
-
なぜ、パソコンでファイルをコ...
-
Dドライブ直下にファイルを作成...
-
DOSコマンドでファイルをコピー...
-
ランタイムパッケージをDLした...
-
ユーザープロファイルのコピー...
-
エクセルに添付された画像をフ...
-
ROBOCOPYで移行元と先でサイズ...
-
ファイル名の順番通りにコピー...
-
Windows10 ファイルの置き換え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のフォルダへ同時にファイ...
-
ひとつのファイルを一括で複数...
-
Windows10 で登録した外字を他...
-
DOSコマンドでファイルをコピー...
-
パソコン、ワンドライブをプリ...
-
XCOPYで指定したフォルダとファ...
-
VBAマクロ 実行時エラーが出た...
-
ROBOCOPYで移行元と先でサイズ...
-
SDカードをパソコンに落とす...
-
ファイル名の順番通りにコピー...
-
robocopyコマンドのミラーコピ...
-
外付けHDDのデータ転送が遅い
-
Windows10使用中。「同名ファイ...
-
バッチでファイルをコピーしよ...
-
robocopyでフォルダ自体のコピ...
-
エクセルに添付された画像をフ...
-
コピー失敗したファイルを知りたい
-
ファイルのコピー正常終了を確...
-
windows10 フォルダを上書きす...
-
VBAでネットワークコンピュータ...
おすすめ情報