ここから本文です

ExcelのVBAです。 端末によって結果が異なり戸惑っています。

アバター

ID非公開さん

2013/4/2600:23:23

ExcelのVBAです。
端末によって結果が異なり戸惑っています。 OSはwindows7Pro、Excel2010です。

あるブックを開いてシートを順に参照します。Path名、Book名、Sheet名は変数です。Sheet名は毎回変わります。
1回目は
Workbooks.Open Path名 & "\" & Book名
Worksheets(Sheet名).Select
2回名以降は
Workbooks(Book名).Activate
Worksheets(Sheet名).Select
この記述で作成し、ほとんどの端末で動作します。

ところが、特定の端末では下記エラーとなります。

実行時エラー"9"
インデックスが有効範囲にありません。

仕方ないので2回目以降も
Workbooks.Open Path名 & "\" & Book名
と記述すればエラーは回避できます。(すべてWorkbooks.Openで記述すれば済むことなのですが)

知りたいのは、この端末による違いは何か、ということです。
今回更に困ったのは、作成時の端末で1年近く経ってから動作確認したところ同事象でエラーとなってしまったことです。
他の端末で同じコードで試すとエラーにはなりません。環境や設定はほぼ同じです。

同じような問題を解決された方、原因を推測してくださる方、どうかよろしくお願いいたします。

補足回答ありがとうございます。大変参考になります。
しかし、今回の質問は、同じコードを実行して端末で結果が異なる、この原因は何か?ということです。その観点からの回答を求めています。宜しくお願いします。

閲覧数:
7,022
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

ja7********さん

編集あり2013/4/2709:44:46

--- 補足に---
> 同じコードを実行して端末で結果が異なる

ですから その端末で開いたときのシートのActive状態などが違っていることが
考えられるということです。 理解されていないようですね。
まぁ、よくある初歩的エラー内容ですので デバック手法を習得してください。

あとは、個人用マクロとアドインと参照設定ぐらいでしょう。

--------------------------
まぁ、推測できる原因は、Range や Cells に対して シート名 とか ブック名 を
明示する必要があるのに それをしていないことだと思います。

その時のブック&シートのActive状態が、運良く合致していた時だけ
Errorにならないのだと思います。
その点を点検してみたら 如何でしょうか。

> 端末によって結果が異なり
そうですか?
使用している全てのブックの(開いていないブックも)
シートの選択状態を 左端から右端まで 全て変えてみて実行してもそうですか?

アバター

質問した人からのコメント

2013/4/27 10:40:33

個人用マクロ、アドイン、参照設定は確認済です。他のブックが無い状態で実行しています。
補足は一度しかできないのですね、知らなかったです。回答をいただいたお二方には感謝しています。ベストアンサーを両方差し上げたいですが。

ベストアンサー以外の回答

1〜1件/1件中

por********さん

2013/4/2609:15:08

こんにちは。
マクロの存在するブックと、ターゲットのブックと、それ以外と、ブックの存在は、いくつあるんでしょうか。

まず、それが手がかりです。

1) 処理に関係ないブックも開いている という場合、そのブックを閉じたら、現象が変化しないか、確認。
個人マクロブックの関係も確認してください。
「個人マクロ」が開いているか、いないかは、プロジェクトエクスプローラで確認です。

アドインのブックの関係。 もし、アドインがある場合のエラーだったら、その接続をチェックをはずして、現象の変化の確認

二つしかブックがないのに発生するエラーだったら、マクロコードに全部、ターゲットブックのオブジェクトを追加して、
正式なコードにする、ということもあるのですが、
「処理のなかに、別のブックをアクティブにする」というコードが、構造的にあるのではないかと、思います。

コードを見ないとなんとも、とは思いますが、「コントロールにselect」が入ると、シートがアクティブにならない、というexcel97のバグ
と似たようなことが原因だったら、コントロールを操作したあとで、activesheet.activate
のコードを時々実行してみてください。(これ、かなり古臭い問題回避のおまじないです)

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる