データがカンマやタブで区切られたテキストファイルを開くと、数値のみのデータは自動的に数値型になり、全てのデータが読み込まれます。ここでは数値を文字列型で読み込む方法と、指定した列のデータを読み込まない方法を掲載します。
各列のデータ形式は、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でカンマ区切り・タブ区切りのテキストファイルを開く方法」を参照してください。
タブ区切りのテキストファイルを開くVBA
データがタブで区切られているテキストファイルです。
タブ区切りのテキストファイルを開く通常のVBAコードです。
Sub MyTextFileOpen()
Workbooks.OpenText Filename:="C:\Test2\seiseki.txt", _
DataType:=xlDelimited, _
Tab:=True
End Sub
実行結果のシートです。
日付データは自動的に日付形式になっています。
数値データは自動的に標準形式になっていて、右寄せになっていることから数値になっています。
Array関数で文字列形式に変換する
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列目を見ると、小数の数値が文字列になっています。
Array関数で指定列を読まないようにする
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列のみ表示されています。