プロが教える店舗&オフィスのセキュリティ対策術

Excel2000でVBAを組んでいます。

IBM製のPCではうまく動いているのですが,富士通製のPCで
マクロを起動すると

 Windows("****.xls").Activate の実行時に,
「実行時エラー '9'」が出てしまいます。
 Workbooks("****").Worksheets("@@@@").Activate
とモジュールを変更したのですが,同様のエラーが
発生します。

どちらの命令も,IBM機では問題なく動きます。
設定等で問題があるのでしょうか。

OS・Office は,共に Windows2000で,Office2000です。
ご存知の方がいらっしゃったら教えてください。
よろしくお願いいたします。

A 回答 (2件)

単純に考えるとファイルが無い場合ですが。


ファイルがあることを確認ください。
また、ディレクトリも。
ファイルオープンとのからみも
あると思います。
ソースを見ないと何とも言えませんが。

この回答への補足

ご回答ありがとうございます。
ご指摘のとおり,エラーの内容から考えるとそのとおりなのですが
Excelのシートは全てサーバーの同一フォルダーで保管して
あります。
実行しているフォルダーも同様のためファイルがないということは
ありません。
ちなみにモジュールは
=========================
file_name = ThisWorkbook.Path & "\****.xls"
Application.ScreenUpdating = False
Workbooks.Open Filename:=file_name
Windows("****.xls").Activate
=========================
と記述しています。

Windows("****.xls").Activate のところを
Workbooks("****").Worksheets("####").Activate

と変えても同様で,PCによってエラーが出てくるものと
出てこないものがあるのですが・・・

へんな質問で申し訳ありません。
何か思い当たるものがあればよろしくお願いいたします。

補足日時:2002/02/18 08:13
    • good
    • 0

単純なことで申し訳ありませんが


実行をステップインで行った時の
変数file_nameの内容は何ですか。
機種間で違いはありませんか。

不明な点ですが
Workbooks.Open Filename:=file_name

Workbooks.Open file_name
ではだめですか。

他で開かれている可能性はありませんか。
富士通機でファイルを
開く、更新、保存の
手作業の処理は可能ですか。

オープンがうまくいっているとしたら
ツールバーの「ウィンドウ」のところに表示されますか。
(同じくステップインで見れませんか)
オープン済みブックの確認は下記でも可
Dim ブック名 As Variant
For Each ブック名 In Workbooks
MsgBox ブック名.Name
Next

ディレクトリ内のほかのファイルではどうですか。
サーバーでなくローカルのファイルではどうですか。
サーバーとの設定が機種間で違うところはありませんか。
(ファイル共有)
以前からだめですか。
(まだ一度も成功したこと無い?)

しばらく ScreenUpdating は解除して
変数の推移など様子を眺めてみてはどうでしょうか。

エラー処理はどのようなことをしていますか。
(オープン時エラーは回避する、等はありますか)

同じソースでのエラーは機種間の設定が心配です。
ネットワークファイルの扱いが気になります。

たいした事が書けなくてすいません。
何かありましたら質問ください。

この回答への補足

ご丁寧にありがとうございます。

1)実行をステップインで行った時の変数file_nameの内容は何ですか。
機種間で違いはありませんか。
--->機種間での違いはないです。

2)Workbooks.Open Filename:=file_nameは
Workbooks.Open file_nameではだめですか。
--->どちらでもOKだと思います。

3)他で開かれている可能性はありませんか。
富士通機でファイルを開く、更新、保存の手作業の処理は可能ですか。
--->手作業は問題ありません。手作業のさいにブックの使用中の警告が
出てこないので,他で使用している可能性はないと思われます。

4)オープンがうまくいっているとしたらツールバーの「ウィンドウ」の
ところに表示されますか(同じくステップインで見れませんか)
--->表示はされます。異常終了の際にWindowsのタスクバーにオープン
したブックが出ていますので。

5)ディレクトリ内のほかのファイルではどうですか。
 --->最初にユーザーの認証を行うため,別のブックを開いています。
   そちらは問題なく動作します。
サーバーでなくローカルのファイルではどうですか。
--->試してみます。
 サーバーとの設定が機種間で違うところはありませんか(ファイル共有)。
 --->特に違いはないと思います。アプリケーション自体がサーバーの共有
   ファイルにあり,参照するブックも同じフォルダー内にありますので。 
--->以前からだめですか。 (まだ一度も成功したこと無い?)
一度も成功していません(>_<)
6) エラー処理はどのようなことをしていますか(オープン時エラーは回避する
  等はありますか)
--->オープン時エラーは回避する等の処理はいれていません。
    On Error Resume Next 等をいれれば回避されるとは思うのですが
    その場はよくても後のメンテナンスが厄介そうなので・・・・

以上です。
色々と説明不足で申し訳ありませんでした。
私も色々と試してみます。うまくいったら報告させてもらいます。

補足日時:2002/02/18 12:28
    • good
    • 0
この回答へのお礼

Workbooks("****").Worksheets("@@@@").Activate
に限らず,既にActivateが,かかっているワークブック("****")
に対して,
Workbooks("****").Worksheets("@@@@").Close savechanges:=False
などの処理もうまくいかないことがわかりました。
コードを,

ActiveWorkbook.Close savechanges:=False 等に変更することで
とりあえずはエラーを回避しました。

ただ,同じモジュールをそのまま使ってPCによって現象が出るものと
出ないものがあるのが気がかりです。
NEC製のPCや他の富士通製のノートPCでは現象が出ないため,
現象が出るのは同時期にまとめて購入した特定の型のPCのようです。
1台を除き全てのPCで現象がでました。

以上です。色々とありがとうございました。

お礼日時:2002/02/21 16:26

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