掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VBからエクセルファイルを読込み、エクセル内の文字を検索したい (ID:123796)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> '取得したパス(ファイル)を開く > For lIndex = 1 To UBound(nFilePathes()) > nPrompt = nPrompt & nFilePathes(lIndex) & vbNewLine > Set xlApp = CreateObject("Excel.Application") 'エクセル起動 > Set xlBook = xlApp.Workbooks.Open(nFilePathes(lIndex)) > 'xlApp.Visible = True > Next lIndex 上記の部分が気になります。 ループ中で、Excel.Applicationインスタンスを随時生成していますが、 それを受け取る変数が、xlApp一つしか用意されていませんよね。 Excel.Applicationのインスタンスを複数扱うのであれば、 For n = LBound(X) To UBound(X) Set xlApp(n) = CreateObject("Excel.Application") Set xlBook(n) = xlApp(n).Workbooks.Open( X(n) ) Next n のようにして、それを受け取るための変数も、(配列などを使って) 用意するべきですし、逆に、インスタンスを1つだけにしたいなら Set xlApp = CreateObject("Excel.Application") For n = LBound(X) To UBound(X) Set xlBook(n) = xlApp.Workbooks.Open( X(n) ) Next n のように、ループの外に出すべきかと思いますよ。 あるいは、ワークブックを受け取る変数も1つだけにするために、 Set xlApp = CreateObject("Excel.Application") For n = LBound(X) To UBound(X) Set xlBook = xlApp(n).Workbooks.Open( X(n) ) '(xlBookに対する検索処理) xlBook.Close Set xlBook = Nothing Next n xlApp.Quit Set xlApp = Nothing のように、検索部分もループの中に含めるようにするとか。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.