プロが教える店舗&オフィスのセキュリティ対策術

初心者です。
エクセルのマクロで、
テキストファイルのインポートダイアログを出したいのですが、
どのようにすれば良いですか?

A 回答 (1件)

エクセルのマクロで、テキストファイルのインポートダイアログとは、どういうエクセルの操作で出てくるものですか。


データー外部データの取り込みーデータの取り込みの操作のことか。
そこには「テキストファイルのインポートダイアログ」というのは無いようだが。
何のことを言って居るかわかりにくくて、回答が付いてないのではないか。
ーーー
実質同じものでよければ
Sub test01()
fname = Application.GetOpenFilename("txt形式,*.txt")
MsgBox fname
i = 1
Open fname For Input As #1
While Not EOF(1)
Line Input #1, a
x = Split(a, " ")
For j = 1 To UBound(x)
Cells(i, j) = x(j)
Next j
i = i + 1
Wend
Close #1
End Sub
のようなものでエクセルに読み込める。
テキストといってもCSVファイルの場合は、エクセルとの親和性から、インポートと大げさに言うほどのもので無い。
ーー
テキストファイルの場合はデリィミタが空白と限ったものではないと思うので、それが影響するので、はっきり書かないと判りにくい。
ーーー
また
http://support.microsoft.com/kb/880684/ja
の操作をマクロの記録をッ採り一部を修正すると
(下記では指定するファイルを開いて実行しないこと、エラーになるようだ。テスト段階で注意)
Sub Macro3()
fname = Application.GetOpenFilename("txt形式,*.txt")
fname = """" & fname & """"
Workbooks.OpenText Filename:=fname _
, Origin:=932, StartRow _
:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, _
Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3 _
, 1), Array(4, 1), Array(5, 1), Array(6, 1)), _
TrailingMinusNumbers:=True
End Sub
ただし FieldInfoのところをフィールド数で変えないといけないので(もちろんデリミタも実情で変える必要がある)
Sub test03()
fname = Application.GetOpenFilename("txt形式,*.txt")
fname = """" & fname & """"
Workbooks.OpenText Filename:=fname _
, Origin:=932, StartRow _
:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, _
Space:=True, Other:=False, _
TrailingMinusNumbers:=True
End Sub
としてしまうか。
ーー
初心者がする質問にしては難しいな。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!