Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


71009 / 76738 ←次へ | 前へ→

【10230】Re:非アクティブなファイルのシート名の取得方
回答  ichinose  - 04/1/13(火) 20:52 -

引用なし
パスワード
   ▼注意報 さん:
こんばんは。
>初めまして。
>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

でも良いと思いますが・・・。
確認してみて下さい。

0 hits

【10229】非アクティブなファイルのシート名の取得方 注意報 04/1/13(火) 19:56 質問
【10230】Re:非アクティブなファイルのシート名の取... ichinose 04/1/13(火) 20:52 回答
【10232】Re:非アクティブなファイルのシート名の取... 注意報 04/1/13(火) 22:41 お礼

71009 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free