vbでprogram filesにファイルをコピーするとエラーが発生します。filecopy関数とFileSystemオブジェクトでもエラーが発生します。Win2000では上手くいきます。Win98では失敗します。何か違いがあるのでしょうか?

A 回答 (6件)

Windowsでは、Programとfilesの間にスペースがあるのがふつうだと思いますよ。


いずれにせよそれが原因ですね
    • good
    • 0

>コピー元ファイルの問題でしょう。


その可能性も否定できませんね。
どういう環境で使われているのか、実際のところ、詳細がわかりませんから。
ただ、
>コピー先に問題がある場合は違うエラーになるはずです。
というのは違うと思いますよ。
私も最初はそう思ったのですが、VB6では、どちらもおなじエラーになってしまいます。

>コピー元ファイルが存在しないとか。
>コピー元ファイルをopenしてcloseしていないとか。
そうですね。Dir関数ででフォルダもしくはファイルにアクセスできるとすれば、その可能性が高いですね。

何にせよ、2430326さんがどのようなソフトにしているかが重要ですね。
ためしに、新規にプロジェクトを作ってもらって、前述のソースで実行してもらうのがわかりやすいのですがね。

この回答への補足

Program filesのProgramとfilesのスペースを削除したところエラーがでませんでした。

補足日時:2005/04/15 19:16
    • good
    • 0

>エラー内容は「実行時エラー57ファイルが見つかりません」です。



コピー元ファイルの問題でしょう。
コピー先に問題がある場合は違うエラーになるはずです。

コピー元ファイルが存在しないとか。
コピー元ファイルをopenしてcloseしていないとか。
    • good
    • 0

ためしにWin32APIを使ってみても、当方では同じ結果でした。


これでできないとなると、ファイル名が間違っているか、なにかぐらいしか思い当たらないのですが。

以下、ソースです。

Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Private Sub Command1_Click()
Dim s As String
Dim d As String
Dim x As String
Dim ret As Long

s = "c:\Sample.c"
d = "c:\Program files\Sample.c"
'' x = Dir(s)
'' FileCopy s, d
ret = CopyFile(s, d, False) '' 既存ファイルのオーバーライト

End Sub
    • good
    • 0

このあたりの挙動は変わっているとはおもわないのですが、試しに、Dir関数でProgram Filesフォルダが取得できるかどうか、確認してください。


Dim d As String
Dim rcv as String
d = "c:\Program files"
rcv = Dir(d)
って感じかな?
    • good
    • 0

どのようにされたのかわかりませんが、当方ではちゃんと動作しているようですよ。



とりあえず、フォーム上にCommand1ボタンを1つはりつけて、以下のソースを記述しました。
c:\にSample.cというファイルをおいておきます。
これで実行すると、Program FilesのなかにSample.cが
コピーされます。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Private Sub Command1_Click()
Dim s As String
Dim d As String

s = "c:\Sample.c"
d = "c:\Program files\Sample.c"
FileCopy s, d
End Sub
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

環境的にはVisual Basic 6.0でテストしてあります。
動作確認はWindows2000とWindows98SEです。

この回答への補足

ご指摘どおりプログラムを作成し実行してみたのですが、
結果は同じでした。
環境的はVisual Basic 6.0です。
動作確認はWindows2000とWindows98SEです。
何台か98でテストしたのですが結果は同じでした。
エラー内容は「実行時エラー57ファイルが見つかりません」です。

補足日時:2005/04/15 10:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエラー発生アプリケーション mmc.exe

管理ツールのイベントログを見たり、保存したりすると、管理ツールが落ちてしまいます。
何とか、落ちながら保存された、イベントログには
「エラー発生アプリケーション mmc.exe、バージョン 5.1.2600.0、エラー発生モジュール mmcndmgr.dll、バージョン 5.1.2600.0、エラー発生アドレス 0x00054e27」
とあります。
何が壊れているんでしょうか。

Aベストアンサー

mmc.exeは管理ツール。mmcndmgr.dllはそのアイコン・ファイルのようですが。回答になっていませんね。
http://www.zdnet.co.jp/magazine/pcjapan/0009/sp4/08.html

参考URL:http://www.zdnet.co.jp/magazine/pcjapan/0009/sp4/08.html

QVB6.0で作成したexeファイルが他のPCではエラーが発生して動きません

はじめまして。
色々検索してみたのですが、なかなか見つからなかったのでお力を貸していただければと思います。

仕事でVB6.0でつくられたプログラムがあります。
最初は別の方(仮にAさんとします)が作ってくださり、いつもそのexeファイルをもらって仕事をしておりました。
この度、私がそのプログラムを修正し、exeファイルを作成したところ、自分のPCでは問題なく動くのですが、他のPCで使用しようとするとエラーが発生して動きません。

プログラムはVB6.0で、指定したエクセルファイルを開いて参照し、データと照合させるものです。

AさんのPCのOSはwinXPです。
Aさんが作ってくれたexeファイルはコピーして、Win95/Win98/WinXPで問題なく動作することが出来ました。
しかし私が修正し、作成したexeファイルはOSは関係なく自分のPC以外ではエラーが発生してしまいます。ちなみに自分のPCもWinXPです。
エラーは「不正な処理をしている為、このプログラムを終了します」という様なものです。
エクセルを参照しようとすると、発生するエラーなので、そのときだとは思うのですが、デバックしようにも、自分のPCでは問題なく動いてしまうので、どうにも出来ません。

よろしくお願い申し上げます。

はじめまして。
色々検索してみたのですが、なかなか見つからなかったのでお力を貸していただければと思います。

仕事でVB6.0でつくられたプログラムがあります。
最初は別の方(仮にAさんとします)が作ってくださり、いつもそのexeファイルをもらって仕事をしておりました。
この度、私がそのプログラムを修正し、exeファイルを作成したところ、自分のPCでは問題なく動くのですが、他のPCで使用しようとするとエラーが発生して動きません。

プログラムはVB6.0で、指定したエクセルファイルを開い...続きを読む

Aベストアンサー

原因は 事前(アーリー)バインディングつまり参照設定をしているためです
yuzumiya氏のパソコンにはExcel2003、ターゲットパソコンにはExcel2000 ということですね

VBのアプリはExcel2003を探しているが見つからないので落ちてしまうのです

As Objectになおして EXcel2003への参照設定も外して EXEを作成してください

Q"mmc.exe"ってどんな働きをするのでしょうか?エラーメッセージが表示されるのですが...

本日2度ほど"mmc.exe"のアプリケーションエラーが発生しました。
表示メッセージは次のようなものでした。
"0x77a5db1"の命令が"0x72392d74"のメモリを参照しましたが、メモリが"read"になることはできませんでした。
発生したのはACCESS2000でテキストファイル(6MB位の大きいもの)にリンクを貼ろうとした際、ACCESSの反応がなくなっため、強制終了してからです。
何らかの修復をしなければならない重要なメッセージなのかどうかわからず質問させていただきました。
mmc.exeで検索したところ、2件ほどヒットしましたが、今回の私の事象とは異なったため、質問しました。
よろしくお願いします。

Aベストアンサー

mmcはMicrosoft Management Consoleです。
MSの検索でMMCで検索すれば何個か文献が出るでしょう。
ヘルプ見ても出てくるはずです。
コントロールパネルの管理ツール内のアプレットはたいていMMCのコンソール
だったはず。

解決策はやはりとりあえずSP2当てて様子を見るというのは(Windows2000ならば)。

参考URLはSP2のダウンロードページです。

参考URL:http://www.microsoft.com/japan/windows2000/downloads/servicepacks/sp2/default.asp

QVB6.0 NTでは動くのにXPではエラー

初めまして。
現在,VB6.0で作成してあるソフトを現在PC(NT)で動作させているのですが,そのPCが古いため新しいPC(XP)でソフトを動作できるようして欲しいと頼まれました。

しかし,XPでソフトセットアップした後,ソフトを立ち上げようとすると,
「実行エラー76
 パスが見つかりません」
とエラーが出てしまいます。エラーコード76についても調べてみたのですが,原因がわからないため詳しい方がいましたら教えていただけますか?
また,
NTではソフトは立ち上がるので,XPとの互換性の問題なのですか?

NTで動くソフトを作ったのは業者なのですが,プログラムを担当した方が退社されていて,プログラムの中身を知ることはできません。

Aベストアンサー

NTとXPでパス(フォルダ名)が変わっているからでは?
NTってWINNTで、XPはWindowsだからとか?
だから環境に合わせてあげないといけないんだと思いますけど。

違っていたらごめんなさい。

Qこのホ-ムペ-ジでの質問一覧画面がエラーで出ない

このホ-ムペ-ジですが
マイページ → 関心カテゴリーの質問一覧
を押してもエラ画面ーになり表示出てきません
自分の質問解答履歴は出ます
なぜエラーに ???
宜しくお願い致します

Aベストアンサー

エラーが続出していますね。
更新ボタンを押すと表示されることが多いです。

QVB2008のプログラムがXP(32bit)では正常ですが、Vista(X64)ではエラーとなります。

VB2008 Express Edition で勉強中なのですが、下記のソースをデバッグを行い実行してみますと、どちらもデバックは正常なのですが、実行時にXP(32bit)では正常に実行されますが、VistaX64(64bit)では実行時にエラーとなります。
VB2008のExpress Editionは32bit版と64bit版が有るのでしょうか。
ダウンロード時には確か有りませんでしたが。
それとも、デバック時又はコンパイル時に64bit,32bit指定が有るのでしょうか。
どなたかご存じの方がおられましたらご指導を宜しく御願い致します。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim objIE As Object
Dim strURL As String = "https://order.store.yahoo.co.jp/cgi-bin/wg-request-catalog?charade"
objIE = CreateObject("InternetExplorer.application")
objIE.Navigate(strURL)
objIE.Visible = True
'ここから下の記述にエラーが出る。
While objIE.ReadyState <> 4
While objIE.Busy = True
My.Application.DoEvents()
End While
End While
objIE.Document.Forms(0).Item("ship-name").Value = "山本山"
objIE.Document.Forms(0).Item("ship-country").Value = "日本"
objIE.Document.Forms(0).Submit()
End Sub

VB2008 Express Edition で勉強中なのですが、下記のソースをデバッグを行い実行してみますと、どちらもデバックは正常なのですが、実行時にXP(32bit)では正常に実行されますが、VistaX64(64bit)では実行時にエラーとなります。
VB2008のExpress Editionは32bit版と64bit版が有るのでしょうか。
ダウンロード時には確か有りませんでしたが。
それとも、デバック時又はコンパイル時に64bit,32bit指定が有るのでしょうか。
どなたか...続きを読む

Aベストアンサー

ひょっとするとIE7が原因かもしれませんね。

WebBrowserControlを利用するのもひとつの手段かも…
http://msdn.microsoft.com/ja-jp/events/dd279483.aspx

参考URL:http://www.happy2-island.com/vbs/cafe02/capter00711.shtml

Qホームページビルダー11で通信エラー(エラーコード:553)がサイト転送時に出ます。

 こんにちは。ホームページビルダー11でサイト転送すると通信エラ
ー(エラーコード:553)が出て、フレーム表示のページも表示され
ていない状態になってしまいます。どうしたらよいですか?

Aベストアンサー

こちらがご参考になるかと

V11 で転送時に「転送エラー」ダイアログが表示されます
http://www-06.ibm.com/jp/domino01/swhc/esupport.nsf/key/49256A6A0001F136492572350006E350?opendocument

FTPのエラーメッセージの553ですと、「ファイル名の文法エラー、ファイル名が間違っているため実行できない」という意味ですので
この場合、大抵はファイル名に半角英数以外を使用しているのが原因トモ考えられますので、ご確認を。
ファイル名に使用できるのは半角英数と_-のみです。

ただ、どうもV11の不具合でもあるようですので、ファイル名に問題がない時は、サイト転送ではなくページ転送(FTP)や、フリーソフトのFFFTPなどを使って転送してみた後、ネット上で表示されるかどうか確認するのをおすすめします。

また、後日V11の修正ファイルがIBMで配布されると思いますので、たまに下記サイトをアクセスし、修正ファイルが公開されたらインストールされておかれてください。
http://www-06.ibm.com/jp/software/internet/hpb/

参考URL:http://www-06.ibm.com/jp/domino01/swhc/esupport.nsf/key/49256A6A0001F136492572350006E350?opendocument

こちらがご参考になるかと

V11 で転送時に「転送エラー」ダイアログが表示されます
http://www-06.ibm.com/jp/domino01/swhc/esupport.nsf/key/49256A6A0001F136492572350006E350?opendocument

FTPのエラーメッセージの553ですと、「ファイル名の文法エラー、ファイル名が間違っているため実行できない」という意味ですので
この場合、大抵はファイル名に半角英数以外を使用しているのが原因トモ考えられますので、ご確認を。
ファイル名に使用できるのは半角英数と_-のみです。

ただ、どうもV11の不...続きを読む

Qvbs: オブジェクトがコレクションではありません

ネットワークサーバーのファイルをローカルにコピーするスクリプトを作成しました。
スクリプトは正しく動作しています。
このスクリプトをスタートアップフォルダに入れて、PCを起動すると
「オブジェクトがコレクションではありません」
というエラーが時々起こります。
特定のPCで起こるとか、必ず起こるといった再現性がありません。
起動時にエラーが起きた場合でも、手動でスクリプトを実行すると正しく動作します。

原因として、スクリプト起動時にネットワーク接続が確立されていないのか、他のスタートアップツールがネットワークを利用するタイミングに衝突しているのではないかと考えています。

(1)他に考えられる原因があれば、教えてください。
(2)解決方法があれば、教えてください。

以上、よろしくお願いいたします。

Aベストアンサー

たまに起こるとなると厄介ですね。
既に試されているかもしれませんが
Wscript.sleep 1000 * 10 '10秒待機
で単純に時間稼ぎをしてみるとか

Do Until ※※ = true
wscript.sleep 500
i = i + 1
if i = 3 exit do
Loop
※※の部分は
http://gallery.technet.microsoft.com/scriptcenter/8894f20c-a8ae-40f4-b96b-2a948615a2da/
のWMIで IP Address を 取得出来るまで待機して・・
などでできませんかね。
対症療法的な処理のような気がするので、どうかな?とも思えますが
思いついたのは、これぐらいです。

QWindows1032bitアップデート中にエラーが出ました。second-boot フェーズでエラ

Windows1032bitアップデート中にエラーが出ました。second-boot フェーズでエラーが出ました!全く意味がわかりません?

Aベストアンサー

windows10、windows10anniversary Updateに失敗をする場合は、
タスクトレイを開いてタブのスタートアップを開いて、すべてのアプリを無効にします。
次にもサービスを開いて、Microsoftの製品をすべて無効にします。

windows10 Creators Updateに失敗をする原因
http://freesoft.tvbok.com/win10/problems/trouble_shoot_list_creators_update.html

私のプロフィールにwindowsに関するURLを載せているので、必要な時にURLを開いて操作方法を確認してください。

QVBS実行時エラー オブジェクトがありません 回避方法について

タイトルの件ですが、現在CSVよりIDとPWを読み込み、Webページに自動ログインできるVBSを作成しております。
ネットの情報を頼りに下記ソースを作成し、自動ログインできるところまでは達成しました。
しかしながら、一回目の実行時はいいのですが、二回目以降時間を置かずにVBSを起動すると
エラーが発生します。(IEは起動し、ログイン自体は出来ます)
本エラーの回避方法をご教授願えませんでしょうか。

エラーの発生場所は objIE.Document.getElementsByName("username")(0).Value = SiteID
あたりだとは思うのですが、何が原因かがわからなく。。

○エラーメッセージ
エラー:オブジェクトがありません。:'objIE.Document.getElementByName(...)(...)'
コード:800A01A8
ソース:Microsoft VBScript 実行時エラー

○コード
'Option Explicit

Dim tmp 'CSV格納
Dim tmp2 'CSV分割
Dim SiteArray(10) 'ID,PW,URL格納
Dim SiteURL 'URL格納
Dim SiteID 'ID格納
Dim SitePW 'PW格納

Dim i
dim objFSO
dim stmCsvFile

'URL,ID,PWをCSVより読込
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set stmCsvFile = objFSO.OpenTextFile("C:\Users\***\Desktop\login.csv")

Do Until stmCsvFile.AtEndOfLine = True
tmp = stmCsvFile.readline
tmp2 = Split(tmp, ",")
SiteArray(i) = tmp2(1)
i = i + 1
Loop

stmcsvfile.Close


'URL,ID,PWを格納
SiteID = SiteArray(1)
SitePW = SiteArray(2)
SiteURL = SiteArray(0)

'---------- ひらく

Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate SiteURL
Do Until objIE.busy = False And objIE.readyState = 4 : Loop '待ち合わせ

'---------- ID/PASSの入力

objIE.Document.getElementsByName("username")(0).Value = SiteID
objIE.Document.getElementsByName("password")(0).Value = SitePW

'---------- SUBMIT

objIE.Document.getElementsByName("login_form")(0).Submit
Do Until objIE.busy = False And objIE.readyState = 4 : Loop '待ち合わせ

'----------

宜しくお願い致します。

タイトルの件ですが、現在CSVよりIDとPWを読み込み、Webページに自動ログインできるVBSを作成しております。
ネットの情報を頼りに下記ソースを作成し、自動ログインできるところまでは達成しました。
しかしながら、一回目の実行時はいいのですが、二回目以降時間を置かずにVBSを起動すると
エラーが発生します。(IEは起動し、ログイン自体は出来ます)
本エラーの回避方法をご教授願えませんでしょうか。

エラーの発生場所は objIE.Document.getElementsByName("username")(0).Value = SiteID
あたりだ...続きを読む

Aベストアンサー

こんにちは。

>コメント頂いた箇所を下記の通り処理を変更しましたが現象はほぼ変わりませんでした。

#1で私の書いた、IsObjectは一般論ですが、個別の問題になるとかなり話は込み入ってしまうから、やめておいたことですが、なんといっても、VBSで、どのように開発しているかは分かりませんが、そのオブジェクトのプロパティとか、確認をして開発したのでしょうか。

>Set upw =objIE.Document.getElementsByName("password")
の時点で、upw を確認できない状態ですと、
upw(0) という「添字(index)」があるかどうかさえ確認できませんよね。
その辺りはどうなんでしょうか?それで、Length プロパティを調べるように書いたわけです。

ふつう、例えば、ここの「教えて!goo」なんかでも、IDとパスワードは、きちんと、[ID(uname, pass)]を持っています。そしてIDには、添字は存在しません。

VBAがあれば、VBEditorのローカルウィンドウで、そのプロパティを確認していただくしかないと思います。もしかしたら、最初からとれていないのかもしれません。

こんにちは。

>コメント頂いた箇所を下記の通り処理を変更しましたが現象はほぼ変わりませんでした。

#1で私の書いた、IsObjectは一般論ですが、個別の問題になるとかなり話は込み入ってしまうから、やめておいたことですが、なんといっても、VBSで、どのように開発しているかは分かりませんが、そのオブジェクトのプロパティとか、確認をして開発したのでしょうか。

>Set upw =objIE.Document.getElementsByName("password")
の時点で、upw を確認できない状態ですと、
upw(0) という「添字(index)」があるか...続きを読む


人気Q&Aランキング

おすすめ情報