3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

たしかにWorkbooks.OpenTextは値を返さないといえば返さないのだが…

Posted at

#だからといって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だけって田中先生言ってたと思うんだけど。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?