
プログラム初心者です。宜しくお願いします。
職場で新PCを数十台導入したのでデータのお引越しをすることになりました。
主要なものはFASTWIZ.EXEを使用しますがNOTESデータの一部もデータ移管したいのです。
そこで以下のスクリプトを書いてみました。
------------------------------------
1 Dim objWshShell, objSF, FSO
2 Set objWshShell = CreateObject("WScript.Shell")
3 Set objSF = objWshShell.SpecialFolders
4 Set FSO = CreateObject("Scripting.FileSystemObject")
5 FSO.CopyFile "c:\notes\data\*.id", objSF.Item("MyDocuments")
6 FSO.CopyFile "c:\notes\data\desktop.dsk", objSF.Item("MyDocuments")
7 FSO.CopyFile "c:\winnt\notes.ini", objSF.Item("MyDocuments")
------------------------------------
ファイル名にアスタリスクを入れていないと書き込み出来ないとエラー(800A0046)が発生してしまいます。調べてみましたら権限が無いと発生するエラーだったのですが
例えば
7 FSO.CopyFile "c:\winnt\notes*.ini", objSF.Item("MyDocuments")
のようにファイル名の一部にアスタリスクを追加するとエラーが発生せず正常に実行されます。
?
アスタリスクを付ければ正常に動作するので良いんですが、何故なのか分からないと気持ちが悪くていけません。
調べてみたのですが分からず皆様のお知恵を拝借出来ないかと書き込ませて頂きました。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
CopyFile メソッドは、
コピー元に*が指定された場合コピー先をフォルダとして扱います。
また、コピー先フォルダが¥で終わっているときフォルダとしてあつかいます。
逆に言うと、*が指定されていない場合で、コピー先フォルダ名として¥で終わっていない場合、ファイルからファイルとしてコピーをするということです。
つまり、ファイル名が指定されたとしてコピーしようとするが、実際にはフォルダ名であるので、エラーになっているというようなことかと思います。
No.3
- 回答日時:
.Item("MyDocuments")
は、最後に¥をつけないので
なんだったら
objSF.Item("MyDocuments") & "\"
とすればいいと思います
*が指定されておらず且つコピー先フォルダが¥で終っていないからと言う理由だったんですね。上記方法で解決致しました。
ご回答ありがとうございます。
No.1
- 回答日時:
マイクロソフトのサイトに次のような報告がありました。
状況が分からないので、はずしていたらすみません。
この報告によると特別な環境がトリガーになっていますね。
そしてcreateobjectで発生するバグのようですね。
バグなので*のときは対象にならないということでしょうか?
いずれにしても相手先の権限とは無関係のようにみえますが・・・
その他にも同サイト内でそのエラー番号で検索すると15件ほどヒットしました。
一番関連がありそうなのがこの案件かと思った次第です。
参考URL:http://support.microsoft.com/default.aspx?scid=k …
回答ありがとうございます。
VSはインストールしておりません。
質問の書き方が悪かったようです。申し訳ありませんでした。いずれネットワークドライブに置いて各クライアントマシン上から実行して貰おうと思っていたのですが現段階では自分のマシン上でテストしております。ファイルやフォルダの権限は無関係です。
VSをインストールすることが合って同現象が発生したらhawkwindのご回答を参考にさせて頂きます。お世話になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) FileSearch2007に変わる構文について 1 2022/12/16 16:57
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
中度論理障害のHDD復旧
-
WORD2000を起動するとアプリケ...
-
マイクロソフトのヴィスタを使...
-
unity xcode
-
ShellExecute でショートカット...
-
外付けHDにエラーが起きた時の...
-
スタックエラー?って何ですか
-
エクセルVBA 開いているブック...
-
パワーポイントに挿入したエク...
-
フォルダの中のファイルを任意...
-
win10で1つのフォルダ内に保存...
-
フォルダ「PerfLogs」について
-
windows media playerの動画をJ...
-
WindowsXPのフォルダプロパティ...
-
再起動したら表示がおかしくな...
-
OSやメモリーを変えたいのです...
-
ダウンロードしたものを完全削...
-
アイコンのダウンロード
-
アプリケーションの追加と削除...
-
フォント
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントに挿入したエク...
-
VB6のプロジェクトロードエラー...
-
エクセルVBA 開いているブック...
-
ファイルは既に開かれています(...
-
バッチファイルでXCOPYコマンド...
-
パソコン起動時
-
vb.netで作成したexeファイルが...
-
IISでローカル内からhttp://loc...
-
ShellExecute でショートカット...
-
Windowsタスクスケジューラから...
-
FileSystemObject CopyFile ...
-
HDDが論理的にクラッシュ?(MFT...
-
データベースアクセスエラー(...
-
C# ネットワークドライブのexe...
-
80070052エラー
-
C++言語エラー
-
EXCELでCTRL+Cでコピーをしたと...
-
デバイスドライバの開発について
-
エラーコード:0×80070570を削...
-
ASP(vbs)でのBCPの実行について
おすすめ情報