テキストファイルウィザードを起動させずに開きたいが?

Question 30.2   Previous Next
ウィザード 質問があります。よろしくお願いします。

Application.Dialogs(xlDialogOpen).Show
を実行したあとに,.txtファイルを開こうとすると、 [テキストファイルウィザード]ダイアログボックスが表示されてしまいます。

多数のファイルを開く場合は、いちいち完了ボタンを押すのが面倒くさいのです。

そこで、このダイアログボックスを表示させないようにする方法はないでしょうか?
Answer   Copyright (C) 2000.8.22 永井善王
Application.Dialogs(xlDialogOpen).Showを実行すると「ファイルを開く」ダイアログボックスが表示されるので、ファイルの種類とファイル名を選択して[開く]ボタンをクリックします。



それを受けたExcelは、ファイルの種類に「テキストファイル」が選択されているので、「テキストファイルウィザード」を起動してダイアログボックスを表示します。その理由は、さらに細かい設定を可能にするためです。あなたの場合は、初期値を変更する必要がないしクリックも面倒だから、このダイアログボックスを表示させたくないのですね。
テキストファイルウィザードを起動させずにテキストファイルを開くには、OpenTextメソッドを使えば可能ですが、くわしい説明に入る前に、確認しておきたい事項があります。

それは、このメソッド を使うと「ファイルを開くダイアログボックス」が表示されなくなることです。質問文だけでは、はっきりとわかりませんが、 多数のファイルを開く場合' に、ユーザーがいちいち、ファイル名を選択しているのではないでしょうか。つまり、表示された「ファイルを開くダイアログボックス」で、ハンド操作していませんか。
もし、そうだとすれば、OpenTextメソッドを使うためには、ファイル名を取得するマクロを別に用意しなければなりません。その方法は色々ありますが、ここでは割愛します。

【 OpenTextメソッド 】

このメソッドは、テキストファイルを分析して1枚のシートに読み込み、新しいブックとして開いてくれます。
構文は次のとおりです。

expression.OpenText(Filename, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, DecimalSeparator, ThousandsSeparator)

引数の一覧表
引 数 説 明
FileName テキストファイルの名前
Origin テキストファイルが作成された機種(省略するとその機種)
StartRow 取り込む開始行(省略すると最初の行)
DateType データ形式(省略すると xlDelimited:区切り文字で区切られている)
TextQualifier 文字列の引用符(省略すると xlTextQuqlifierDoubleQuote)
ConsecutiveDelimiter 連続した区切り文字を1字として扱うかどうか(省略すると False)
Tab 引数DataTypeにxlDelimitedを指定し区切り文字にタブを使うときは True(省略すると False)
Semicolon 引数DataTypeにxlDelimitedを指定し区切り文字にセミコロンを使うときは True(省略すると False)
Comma 引数DataTypeにxlDelimitedを指定し区切り文字にカンマを使うときは True(省略すると False)
Space 引数DataTypeにxlDelimitedを指定し区切り文字にスペースを使うときは True(省略すると False)
Other 引数DataTypeにxlDelimitedを指定し区切り文字に引数OtherCharで指定した文字を使うときは True(省略すると False)
OtherChar 引数OtherがTrueのときの区切り文字
FieldInfo 各列のデータ形式を示す配列(省略可能)
構文はむつかしそうに見えますが、標準的なテキストファイルを開く場合は、殆んどの引数は省略できます。
質問の場合は、次のとおり簡単なマクロで済むと考えられます。なお、すでに説明済みですがファイル名を取得するマクロを、これに付加してください
Sub テキストファイルを開く()
Dim ファイル名 As String
Dim データ形式 As Variant
Dim 区切りタブ As Variant
    ファイル名 = "C:\My Documents\Tamesi.txt"   'ドライブ、フォルダー、ファイル名は適宜
    データ形式 = xlDelimited                    'データは区切り文字で区切られている
    区切りタブ = True                           '区切り文字にタブを使う
    Workbooks.OpenText Filename:=ファイル名, DataType:=データ形式, tab:=区切りタブ
End Sub

Excel VBA Macro