
Excel1.xlsm から Excel2.xlsm を別ウィンドウで開く為に下記①のようなコードを書いたのですが、 Excel2.xlsm は立ち上がったものの、①の最終行で「実行時エラー '9': インデックスが有効範囲にありません。」とのメッセージが出てしまいます(なお、この時 Excel2.xlsm は読み取り専用の状態となってしまっているようです)。
因みに、下記②のコード(同じウィンドウで開く)では問題無く Sheet1を開く事ができます。
①
Dim ExlApp As Object
Set ExlApp = CreateObject("Excel.Application")
ExlApp.Visible = True
ExlApp.Workbooks.Open "D:\Excel2.xlsm"
Set ExlApp = Nothing
Worksheets(Sheet1).Select '← エラー行
②
Workbooks.Open ("D:\Excel2.xlsm")
Worksheets(Sheet1).Select
上記トラブルの解決策を教えて頂ければ幸いです。
宜しくお願いします。

No.3ベストアンサー
- 回答日時:
以下のようにしてください
Dim ExlApp As Object
Set ExlApp = CreateObject("Excel.Application")
ExlApp.Visible = True
ExlApp.Workbooks.Open "D:\Excel2.xlsm"
ExlApp.Worksheets(Sheet1).Select
'・・・select以降の処理・・・
'最後にExlAppはクリアする
Set ExlApp = Nothing
tatsu99さん、教えて頂いたとおりに修正して解決しました。
考えてみれば当然の事なのでしょうが全く気付きませんでした。
御教授、有り難うございました。
No.2
- 回答日時:
Excel のバージョンはいくつでしょうか。
>①の最終行で「実行時エラー '9': インデックスが有効範囲にありません。」
Sheet1 が変数であるなら、変数を代入している部分がなければ分かりませんし、また、その名称が違っている可能性が高いはずです。
ただ、①のコードは、オートメーションオブジェクトを生成しているのですから、これをマクロで立ち上げるというのは、いずれにしても変な感じです。WScript とも思えるようなコードです。
ともかく、Set ExlApp = Nothing は、ブックを手動で閉じるなら不要です。
'//
Sub AnotherExcel()
Dim ExlApp As Object
Dim Wb As Object
Dim ShN As Variant
ShN = 1
Set ExlApp = CreateObject("Excel.Application")
ExlApp.Visible = True
Set Wb = ExlApp.Workbooks.Open("D:\Excel2.xlsm")
Wb.Worksheets(ShN).Select
End Sub
WindFallerさん、以前にも回答頂いたことがあります。今回も有り難うございました。
Excel のバージョンはいくつでしょうか。
>この情報が不足していたことをお詫び致します。
Excel のバージョンは 2010(Windows7) 及び 16(Windows10)です。
いずれの場合も同じ結果となります。
Sheet1 が変数であるなら、変数を代入している部分がなければ分かりませんし、また、その名称が違っている可能性が高いはずです。
>これに定数のシート名を入れても同じ結果となる事は確認済みですし、②のコードではエラーとはならないのでその可能性は無いと思います。
ただ、①のコードは、オートメーションオブジェクトを生成しているのですから、これをマクロで立ち上げるというのは、いずれにしても変な感じです。WScript とも思えるようなコードです。
>別ウィンドウで開く為のマクロの適切な例がネットではこの例しか見つける事ができなかったので、余り理解せずに使用しています。
従って御指摘のような事になっている次第です。
ともかく、Set ExlApp = Nothing は、ブックを手動で閉じるなら不要です。
>アドバイス、有り難うございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/01/27 13:15
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 16:59
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) ワイルドカード「*」を使うとうまくいかないマクロの添削をお願いします 3 2022/03/26 09:39
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
VBAでfunctionを利用しようとし...
-
お助けください!VBAのファイル...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
ApplicationとWorksheetFunctio...
-
【VBA】ワークブックを開く時に...
-
#N/Aの文字を削除するには
-
VB2008 comboboxを連動させた...
-
エラーの種類
-
Null 値の使い方が不正です と...
-
エクセルVBAでApplication.Sum...
-
VBA データ(特定値)のある最...
-
-2147418107 (&H80010005)
-
VBでコンパイル エラー 変数...
-
VBAのリストボックスで、横スク...
-
「実行時エラー '3167' レコー...
-
On ErrorでエラーNoが0
-
レコード登録時に「演算子があ...
-
SQLでエラーです。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロOn Error GoTo ErrLabel...
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
【VBAエラー】Nextに対するFor...
-
ACCESSで値を代入できないとは?
-
【Access】Excelインポート時に...
-
VBでSQL文のUPDATE構文を使った...
-
【VB.NET】 パワポ操作を非表示で
-
「実行時エラー '3167' レコー...
-
実行時エラー 438 の解決策をお...
-
実行時エラー'-2147467259(8000...
おすすめ情報