[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA:Worksheets.Countの最終行でエラー』(和美)
いつもお世話になっております。
VBAで出された課題が解けません。
問題は、指定したブックのシート名を取得し、一覧を作るものです。
(VBA使用が指定されています)
ループ文で参考にしたサイトはこちらです。
https://www.sejuku.net/blog/30902
pass = ActiveSheet.Range("A2") 'ファイルパス
file = ActiveSheet.Range("B2") 'ファイル名
path = pass & "\" & file Set wb = Workbooks.Open(path) 'ファイルパス ActiveWindow.Visible = False 'ファイルをアクティブにしない
For i = 1 To Worksheets.Count
Worksheets("回答").Range("B" & i) = wb.Worksheets(i).Name Next i
シート名が最後まで入力された後、「インデックスが有効範囲にありません」と出ます。
OSのバージョンは8にチェックを入れましたが、8.1です。
< 使用 Excel:Excel2013、使用 OS:Windows8 >
>For i = 1 To Worksheets.Count だと現在アクティブなブック(マクロのあるブック)のシート数になっているのでは? >For i = 1 To wb.Worksheets.Count ではどうか? (ねむねむ) 2019/11/29(金) 11:29
親オブジェクトを明示しないと全てActiveWorkbookになりますよ?
For i = 1 To wb.Worksheets.Count ThisWorkbook.Worksheets("回答").Range("B" & i) = wb.Worksheets(i).Name Next i (seiya) 2019/11/29(金) 11:30
ねむねむ様 seiya様
お二方ともお早いご回答をありがとうございます。
ThisWorkbook.がなくても動きましたが、この後A2セルとB2セルの指定部分を書き換えてループさせることを考えると、あった方が良さそうですね。
ありがとうございました。
(和美) 2019/11/29(金) 12:26
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.