|
▼注意報 さん:
こんばんは。
>初めまして。
>2つのエクセルのファイル(a.xls b.xls)を開き、
>一方から他方の全シート名を取得したいのですが、
>
>ws <- ワークシート
>for each ws in worksheets
> msgbox ws.name
>next ws
>
>だと、アクティブな方のワークシート名しか取得できません。
>現在は、(aがアクティブなとき)、
>
>workbooks("b.xls").worksheets(1).select
>
>などとしてシート名を取得していますが、不細工で仕方ありません。
以下のコードは、アクティブなブック以外のブックのブック名と全ワークシート名を
イミディエイトウインドウ(VBEでCtrl+Gを押せば表示されます)に
表示するものです。
'===========================================================
Sub test()
For Each wk In Workbooks
If Not wk Is ActiveWorkbook Then
Debug.Print wk.Name
For Each sht In wk.Worksheets
Debug.Print Space$(3) & sht.Name
Next
End If
Next
End Sub
もっともブックがb.xls限定なら、
For Each sht In workbooks("b.xls").Worksheets
Debug.Print Space$(3) & sht.Name
Next
でも良いと思いますが・・・。
確認してみて下さい。
|
|