#だからといってset wb = activeworkbook
https://okwave.jp/qa/q8616538.html
Openはブックを返しますが、opentextは何も返さないので、ご相談のようなマクロで書くことはできません。
dim wb as workbook
workbooks.opentext …
set wb = activeworkbook
のような書き振りにするしかありませんね。
#Workbooksに追加されているのでは?
dim wb as workbook : Set wb = ThisWorkBook
Dim wb1 as Workbook
workbooks.opentext …
set wb1 = Application.WorkBooks(Application.Workbooks.Count)
'or
Set wb1 = Application.WorkBooks(ファイル名)
これで取得できるので、無理にActiveworkbookじゃなくてもよいです。
#注意点はある
csvを開く途中でExcelのWinodowを操作をするなど、順番が変わる行為をすれば、誤った指定になります。
複数のWorkbookを開いているときが危ないです。
#公式も悪い
OpenText メソッド (Excel)
https://docs.microsoft.com/ja-jp/office/vba/api/excel.workbooks.opentext
テキスト ファイルを分析して読み込みます。テキスト ファイルを 1 枚のシートとして、それを含む新しいブックを開きます。
Syntax
Workbooks.OpenText (FileName, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, TextVisualLayout, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers, Local)
expression A variable that represents a Workbooks object.
Workbooksオブジェクトを表す変数を取得します。
ExpressionはWorkbooksを表すので、実はこれWorkbooks.Addと同じ意味なんですよね。
https://docs.microsoft.com/en-us/office/vba/api/excel.workbooks.add
addの方ははっきり返り値と書いてあります。なので、本当は同じことが書いてあるはずなのですが。
ブックを開くには、WorkbooksコレクションのOpenメソッドを使います。
Excelでは、同時に複数のブックを開くことができます。開いているそれぞれのブックはWorkbookオブジェクトとして操作できます。このWorkbookオブジェクトの集合体がWorkbooksコレクションです。新しいブックを開くということは、この集合体に、新しいメンバーを加えるということです。だからWorkbooksコレクションのOpenメソッドです。
これはWorkbooks.OpenTextも同じなんですけどね。たしかに安定はしないんですけどやっっぱりWorkbookを追加しています。なのでWorkbooks.OpenTextFileなのです。
このWorkbooksに追加するという発想をするのはOfiiceの中でExcelだけって田中先生言ってたと思うんだけど。