Home » エクセルマクロ・Excel VBAの使い方 » Workbookオブジェクト » Workbooksでインデックスが有効範囲にありませんエラーの発生する原因

Workbooksでインデックスが有効範囲にありませんエラーの発生する原因

動作検証バージョン:Windows版Excel(バージョン1810 ビルド11001.20074)

「インデックスが有効範囲にありません。」エラーは、マクロ作成時によく遭遇する実行時エラーのひとつです。

このサイト『インストラクターのネタ帳』でも、Sheetsプロパティ・Worksheetsプロパティを使ったシート指定時の、インデックスが有効範囲にありませんエラーについて記事を公開しています。

ブック指定時にも、インデックスが有効範囲にありませんエラーは発生する可能性があります。

「vba workbooks インデックスが有効範囲にありません」
「VBA book名指定インデックスが有効範囲にありません」
といった検索キーワードでアクセスも、あります。

[スポンサードリンク]

数値指定時のインデックスが有効範囲にありません実行時エラー

ブックが1つしか開いていない状態で、以下のSubプロシージャを実行すれば、インデックスが有効範囲にありませんエラーとなります。


Sub sampleA()
 Workbooks(2).Activate
End Sub

ブックが1つしか開いていないのに、存在しない「2」が指定されれば、エラーとならざるを得ません。

指定できる数値は、1からWorkbooks.Countプロパティで取得できる整数までですから、
 Workbooks(0).Activate
といったコードは、必ずエラーになります。

ブック名指定時のインデックスが有効範囲にありません実行時エラー

「hogehoge.xlsx」という名前のブックが開かれていない状態で、以下のSubプロシージャを実行すれば、やはりインデックスが有効範囲にありませんエラーとなります。


Sub sampleB()
 Workbooks("hogehoge.xlsx").Activate
End Sub

フルパスも指定できない

Workbooksコレクションの既定プロパティに指定できるのはブック名ですから、フルパス等を指定した場合にも、インデックスが有効範囲にありませんエラーとなります。

名前指定時は拡張子に注意

名前指定時には、拡張子まで明示するほうが無難です。
Windowsの拡張子表示状態によって、挙動が変化するためです。

例えば、hogehoge.xlsxブックが開かれているときに、
  Workbooks("hogehoge")
といった指定をすると、インデックスが有効範囲にありませんエラーが発生するときと、しないときがあります。

Windowsで拡張子が非表示状態ならば、
  Workbooks("hogehoge.xlsx")
のように拡張子を含んだ指定でも、
  Workbooks("hogehoge")
のように拡張子を含まない指定でも、エラーは発生しません。

しかし、Windowsで拡張子が表示されているときには、
  Workbooks("hogehoge.xlsx")
はエラーになりませんが、
  Workbooks("hogehoge")
では、インデックスが有効範囲にありませんエラーが発生します。

最終更新日時:2019-01-17 12:05

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Workbookオブジェクト » Workbooksでインデックスが有効範囲にありませんエラーの発生する原因

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » Workbookオブジェクト » Workbooksでインデックスが有効範囲にありませんエラーの発生する原因

「Workbookオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.