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

ネットワークで繋がったPCが4台。(全てWinXP)
共有する報告書(エクセル/マクロ)があります。
4台のうち2台では報告書が出来るのですが、他の2台ではデバックエラーが出ます。

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

全てのPCで同じ症状が出るならば理解できるのですが、2/4台だけデバックエラーがでる理由が分かりません。

エクセルの初期設定か何かに問題があるのでしょうか?

何方か教えて下さい。
宜しくお願い致します。

A 回答 (7件)

エラーになっている部分を追わないと何とも言えませんが、指定した参照先(シート等)が無いような感じですね。



http://pasofaq.jp/office/excel/error9.htm
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

他のPC2台では問題なく作成できるので、PC設定の問題ではないかと思うのですが…。

お礼日時:2008/12/08 11:46

エラーになる箇所のコードの提示が無いと何とも言えませんが、Excelのアドインに違いはありませんか?

    • good
    • 0
この回答へのお礼

有り難うございます。

既にアドインを合わせているのですが、ダメでした。

お礼日時:2008/12/08 11:49

報告書が作成できないPCのExcelで、MacroBookの最初に"Option Base 1"が宣言されていませんか?



これは配列の添え字の最小値を"1"にするということなので、報告書作成マクロの中で添え字が"0"から始まるようになっているとエラーとなります。
    • good
    • 0
この回答へのお礼

有り難うございます。
この報告書は私が作成したものではないので、初歩的な質問になり申し訳ありませんが、「MacroBook」とは「ツール⇒マクロ⇒」で開く画面でしょうか?

Sub 報告書作成()
'
' Macro1 Macro
' マクロ記録日 : 2008/9/16 ユーザー名 : ???
'

'●診断No.セルの取得
Sheets("診断データ").Select
アクティブセル行番 = ActiveCell.Row
診断Noセル = "D" + CStr(アクティブセル行番)
機器Noセル = "A" + CStr(アクティブセル行番)

…となっています。"Option Base 1"はなさそうです。

お礼日時:2008/12/08 14:45

No.2です。


エラーになる箇所と、その前のコードを提示してもらえればもう少し具体的な回答が出来ると思います。

この回答への補足

http://oshiete1.goo.ne.jp/qa4439047.html

↑は、以前に質問したものです。
参考になりますでしょうか?

補足日時:2008/12/08 14:10
    • good
    • 0

>参考になりますでしょうか?



コードの全文が解らないので何とも言えませんが、シート名(変数「機器No」)の設定方法になんらかの問題がある可能性もあります。

エラーが起きたパソコンで変数「機器No」の中身が何になっているのか確認してください。
エラーになればVBEに黄色で反転表示されます。
そのときに、この変数にマウスカーソルを合わせれば変数の内容がバルーン表示されます。

この回答への補足

'●抽出波形の貼付け
Range(LS生波形セル).Select
Selection.Copy
Windows("データベース.xls").Activate
Sheets("報告書編集").Select
Range("B25").Select
ActiveSheet.Paste

Windows(機器No).Activate    ←ここでエラー
Sheets(シート名).Select
Range(FS生波形セル).Select
Selection.Copy
Windows("データベース.xls").Activate
Sheets("報告書編集").Select
Range("S25").Select
ActiveSheet.Paste

Windows(機器No).Activate
Sheets(シート名).Select
Range(LSスペクトラムセル).Select
Selection.Copy
Windows("データベース.xls").Activate
Sheets("報告書編集").Select
Range("B31").Select
ActiveSheet.Paste

Windows(機器No).Activate
Sheets(シート名).Select
Range(FSスペクトラムセル).Select
Selection.Copy
Windows("データベース.xls").Activate
Sheets("報告書編集").Select
Range("S31").Select
ActiveSheet.Paste

Windows(機器No).Activate
ActiveWindow.Close

バルーン表示された機器No.は合っています。

補足日時:2008/12/08 14:54
    • good
    • 0

>バルーン表示された機器No.は合っています。



文字にスペース等の余計な文字は含まれていませんか?
該当するブックは開いているのでしょうか?

http://oshiete1.goo.ne.jp/qa4439047.html #1
*>変数の「機器No」に拡張子”.xls”を含んでいないとか?
*「機器No」は別のブックでは無く、同じブックの別シート内に「機器No」が存在します。従って拡張子は不要だと思うのですが…。

プログラムを正しく動作させるには、拡張子まで含めてきちんと指定するのが基本です。
「動いたから」という理由で端折ってしまうのは良くありません。

Windows(機器No & ".xls").Activate
    • good
    • 0

エラーが起こるPCは、恐らくフォルダオプションで「登録されている拡張子は表示しない」のチェックを外してあります。


そして、Windows(機器No).Activate で変数「機器No」の値はExcelブックの拡張子なしになっていると思われます。

例えば、Book1.xlsと言うBookを開いてある場合、
「表示しない」設定の場合、Window名は「Book1」ですが、「表示する」場合は「Book1.xls」になります。

「表示しない」設定では、
Windows("book1").Activate
Windows("book1.xls").Activate の、両方OKです(内部的に拡張子を取って使っていると思われる)

「表示する」設定では
Windows("book1").Activate ← こんなWindow無いのでNG
Windows("book1.xls").Activate ← OK

と、なります。

どのPCでも動くようにする為にはフォルダオプションで拡張子を表示しないようにしてもいいのですが、拡張子無しのWindow名を使用する方がトラブルの元になります。
マクロを修正してアクティブにするWindow名には拡張子を付けましょう。
    • good
    • 0
この回答へのお礼

有り難うございます。
原因は「製作者」が出社しなければ確認できませんが、間違い有りません。それが原因です。

拡張子表示設定したPCだけでエラーが出てますから、間違いないと思います。

本当に有り難うございます。

お礼日時:2008/12/08 16:00

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