- ベストアンサー
VBA すでに開いているエクセルのファイル指定
複数のエクセルファイルが開いています。 例えば、「x.xlsx」「y.xlsx」「z.xlsx」です。 3つのファイルを区別するために、いつもなら(ファイルがすべて閉じていれば)、 Set x = Workbooks.Open("D:\x.xlsx") Set y = Workbooks.Open("D:\y.xlsx") Set z = Workbooks.Open("D:\z.xlsx") とやって、「x」「y」「z」を使って、区別して処理しているのですが、すでに開いているファイルを上記のように「Set x = ~」で設定する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Option Base 1 Private Sub test() Dim ws As Workbooks Dim wb() As Workbook Set ws = Workbooks MsgBox ws.Count ReDim wb(ws.Count) For i = 1 To ws.Count Set wb(i) = ws.Item(i) MsgBox wb(i).Name Next End Sub 上記のようにすると、wb配列の1番から順に「オープン済みのブック」が設定されます。 上記では、配列にセットしましたが Private Sub test2() Dim ws As Workbooks Dim x,y,z As Workbook Set ws = Workbooks MsgBox ws.Count If ws.count >= 1 Then Set x = ws.item(1) MsgBox x.Name Endif If ws.count >= 2 Then Set y = ws.item(2) MsgBox y.Name Endif If ws.count >= 3 Then Set z = ws.item(3) MsgBox z.Name Endif End Sub のように、個別の変数にセットしても構いません。
お礼
ありがとうございます! 確認しました! ちゃんと、設定できました。 ありがとうございました。