Excel2010、実行時エラー9インデックスが有効範囲にありませんの原因
Excel2010は、手頃な価格で高機能な表計算ソフトです。
またVBAによるプログラムを行うと、特に繰り返し作業では多大な威力を発揮します。
しかし、VBAはパソコンの設定が変わると正しく動作しない場合が有ります。
発生したパソコンは、下記のソフトを使用していました。
OS : Windows7(64bit)
表計算ソフト : Excel2010(32bit)
以下、Excel2010、実行時エラー9インデックスが有効範囲にありませんの原因と対策を記載して行き
ます。
(項目1)
・Excel2010でマクロを実行した時に、「実行時エラー9インデックスが有効範囲にありません」と
なり、マクロの実行時エラーが発生しました。
(項目2)
・インターネットで、「実行時エラー9インデックスが有効範囲にありません」を調べると、
エクセルVBA 実行時エラー'9'の回避方法についてが見つかりました。
・「登録されている拡張子は表示しない」のチェックが外れてるとエラーが出るとの情報が有りました。
(項目3)
・フォルダーオプションで、「登録されている拡張子は表示しない」を確認して見ると、チェックが外れて
いました。
(項目4)
・そこで、下記の様に「登録されている拡張子は表示しない」にチェックを入れると、マクロが正常に作動
しました。
(項目5)
・
「実行時エラー9インデックスが有効範囲にありません」の原因は、「登録されている拡張子は表示しない」
のチェックが外れている事でした。
・「登録されている拡張子は表示しない」にチェックを入れるとマクロは正常に作動しますが、これではパソ
コンの設定に依存するマクロになってしまいます。
・パソコンの設定に依存するマクロは、汎用性が無く、大変不便なマクロになってしまいます。
・そこで以下は、「登録されている拡張子は表示しない」のチェックの有無に関わらず正常にマクロが作動する
方法を検討して行きます。
(項目6)
・「実行時エラー9インデックスが有効範囲にありません」は、指定したファイル名が存在しない場合に発生
します。
・ファイル名をDir(OpenPath & "\*.xls", vbNormal)で取得した場合、「登録されている拡張子は表示しない」
のチェックの有無によって、下記の現象が発生する場合が有ります。
OpenName =
Dir(
OpenPath & "\*.xls",
vbNormal)
TargetName = Left(OpenName, Len(OpenName) - 4)
Workbooks.
OpenFileName:=
OpenPath & "\" &
OpenName,
ReadOnly:=
True
Workbooks(
TargetName).
Activate ← ここで、エラーが発生する
チェック有 チェック無
OpenName data.xls data.xls
TargetName data data
エクスプローラ data data.xls
(項目7)
・上記の現象への対策は、マクロを下記の様に変更します。(下線の箇所)
・これによって、「登録されている拡張子は表示しない」のチェックの有無に関わらず正常にマクロが作動する
様になります。
OpenName =
Dir(
OpenPath & "\*.xls",
vbNormal)
TargetName = OpenName
Workbooks.
OpenFileName:=
OpenPath & "\" &
OpenName,
ReadOnly:=
True
Workbooks(
TargetName).
Activate
チェック有 チェック無
OpenName data.xls data.xls
TargetName data.xls data.xls
エクスプローラ data data.xls
(項目8)
・以上で、Excel2010、実行時エラー9インデックスが有効範囲にありませんの原因と対策は終了
です。