Excel VBAでタブ区切りテキストファイルを開く時に、文字列変換と読み込まない方法

データがカンマやタブで区切られたテキストファイルを開くと、数値のみのデータは自動的に数値型になり、全てのデータが読み込まれます。ここでは数値を文字列型で読み込む方法と、指定した列のデータを読み込まない方法を掲載します。

各列のデータ形式は、OpenTextの引数FieldInfoを使用します。

FieldInfoはArray関数を使い、2要素配列の配列を使用します。

Array(列番号,変換形式)で指定し、使用例としては、Array(Array(1,変換形式),Array(2,変換形式),Array(3,変換形式),…)のようになります。

変換形式の定数は下記になります。

定数 数値 変換形式
xlGeneralFormat 1 一般形式
xlTextFormat 2 文字列形式
xlMDYFormat 3 MDY 日付形式
xlDMYFormat 4 DMY 日付形式
xlYMDFormat 5 YMD 日付形式
xlMYDFormat 6 MYD 日付形式
xlDYMFormat 7 DYM 日付形式
xlYDMFormat 8 YDM 日付形式
xlSkipColumn 9 列は読み込まれません
xlEMDFormat 10 EMD 日付形式

テキストファイルの使用方法は「Excel VBAでカンマ区切り・タブ区切りのテキストファイルを開く方法」を参照してください。




Homeに戻る > Excel ファイル操作のTipsへ


タブ区切りのテキストファイルを開くVBA

データがタブで区切られているテキストファイルです。


タブ区切りのテキストファイルを開く通常のVBAコードです。
タブ区切りのテキストファイルを開く通常のVBAコード

Sub MyTextFileOpen()
    Workbooks.OpenText Filename:="C:\Test2\seiseki.txt", _
        DataType:=xlDelimited, _
        Tab:=True
End Sub

実行結果のシートです。
日付データは自動的に日付形式になっています。
日付データは自動的に日付形式になっている

数値データは自動的に標準形式になっていて、右寄せになっていることから数値になっています。
数値データは自動的に標準形式になっている

Array関数で文字列形式に変換する

Array関数で、1列目・2列目・4列目を文字列形式に変換するVBAコードです。
Array関数で、1列目・2列目・4列目を文字列形式に変換するVBAコード

Sub MyTextFileOpen()
     Workbooks.OpenText Filename:="C:\Test2\seiseki.txt", _
         DataType:=xlDelimited, _
         Tab:=True, _
         FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 1), Array(4, 2))
End Sub

実行結果のシートです。
4列目を見ると、小数の数値が文字列になっています。
4列目を見ると、小数の数値が文字列になっている

Array関数で指定列を読まないようにする

Array関数で、2列目と3列目を読まないようにしたVBAコードです。
Array関数で、2列目と3列目を読まないようにしたVBAコード

Sub MyTextFileOpen()
     Workbooks.OpenText Filename:="C:\Test2\seiseki.txt", _
         DataType:=xlDelimited, _
         Tab:=True, _
         FieldInfo:=Array(Array(1, 2), Array(2, 9), Array(3, 9), Array(4, 2))
End Sub

実行結果のシートです。
指定した列が読み込まれず、2列のみ表示されています。
指定した列が読み込まれず、2列のみ表示

Homeに戻る > Excel ファイル操作のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved