1

既に開いているブックを選択して操作するマクロを作成しています。

ユーザーフォームを介して名前を取得した後、ワークブックを設定しようとしたり、それ以外の方法でワークブックを操作しようとすると、範囲外の添字エラーが発生します。

ワークブックが開いていること、および ExcelAp オブジェクトが Excel の正しいインスタンスに接続していることを確認しました。

Option Explicit

....

Public Sub TerminalOpen()
Dim WorkbookOpen        As VbMsgBoxResult
Dim ExcelAp             As Excel.Application
Dim FedExWkbk           As Excel.Workbook

....

Else
    Set ExcelAp = Excel.Application
    WorkbookSelection.Show
    WkbkFedExTracking = Trim(VBA.Left(WkbkFedExTracking, InStr(1, WkbkFedExTracking, ".", vbTextCompare) - 1))
    Set FedExWkbk = ExcelAp.Workbooks(WkbkFedExTracking)  <<<<< This is where the error occurs
    FedExWkbk.Activate
End If

ExcelAp を遅延バインディングしてみました。このアプローチは他の例ではうまくいったようですが、この例ではうまくいきませんでした。

ブック名は WkbkFedExTracking 文字列に格納されます。.xlsx 部分を除いたワークブックの名前だけにクリーンアップされます。また、デバッグ時に、開いているワークブックの名前と照合して確認しましたが、正しいです。

4

1 に答える 1