●詳細●
サンプルでは、”Sample.txt”というテキストファイルを読み込んでいます。
このテキストファイルは、データの区切り記号が混在していて、スペースとカンマと
”#”で区切られています。
これを「Open」メソッドで開くと、一つのセルに1行分が全て入ってしまいます。
「OpenText」メソッドを使うと、区切り記号を指定することができるので、区
切り記号の混在したテキストファイルをExcelブックに正しく読み込むことができます。
●準備●
*標準モジュールを挿入しサンプルマクロを貼り付けて保存したExcelブックと同
じフォルダに、異なる区切り記号が混在したテキストファイル”Sample.txt”を用意
します。
テキストファイルは、メモ帳([スタート][プログラム][アク
セサリ][メモ帳])等に下記のデータをそのまま貼り付けて、
”Sample.txt”と名前を付けて保存してください。
県名,氏名,年齢,職業,TEL
東京都 大森 35 会社員 000-000-0000
神奈川県,小島 40,公務員 1111-11-1111
静岡県#太田#38#自営業#2222-22-2222
1行目は項目名、2行目以降がデータです。
1行目はカンマ (,)、2行目はスペース、3行目はカンマ
(,)とスペース、4行目は”#”で区切られています。
●サンプル●
Sub Sample()
Dim TextPath As String
'<テキストファイルのパスを取得します。> ←(1)
TextPath = ActiveWorkbook.Path & "\Sample.txt"
'<「OpenText」メソッドを使ってテキストファイルを開きます。> ←(2)
Workbooks.OpenText FileName:=TextPath, _
DataType:=xlDelimited, _
comma:=True, _
Space:=True, _
other:=True, _
otherchar:="#"
'<列幅を内容に合わせて調節して見やすくします。> ←(3)
Columns("A:G").Select
Columns("A:G").EntireColumn.AutoFit
Range("A1").Select
End Sub
●お試しマクロ●
Sub OpenText()
Dim TextPath As String
TextPath = ActiveWorkbook.Path & "\Sample.txt"
Workbooks.Open TextPath
Columns("A:G").EntireColumn.AutoFit
Range("A1").Select
End Sub
●補足説明●
(1)「Path」プロパティは、指定されたオブジェクトの絶対パスを示す文字列を返します。
ここではサンプルマクロのあるExcelブックのパスを取得しています。
パス末尾の円記号(\)とオブジェクト名は含まないので、”&”で"\Sample.txt"と
連結させてStringの変数にセットします。
(2)「OpenText」メソッドは、テキストファイルを分析して読み込みます。
テキストファイルを1枚のシートとして、それを含む新しいブックを開きます。
<構文>
Object.OpenText(FileName,
DataType,
Comma
Space
Other
OtherChar)
Object:対象となるWorkbooksオブジェクトを指定します。
FileName:読み込まれるテキストファイルの名前を指定します。
DataType:ファイルに含まれるデータの形式を指定します。
使用できる定数は、xlDelimitedまたはxlFixedWidthです。
xlDelimited:区切り記号でフィールドが区切られたテキスト形式
xlFixedWidth:固定長文字列のテキスト形式
Comma:区切り文字にカンマ (,) を使うときはTrueを指定します。
Space:区切り文字にスペースを使うときはTrueを指定します。
Other:区切り文字にOtherCharで指定した文字を使うときはTrueを指定します。
OtherChar:引数OtherがTrueのときは、必ずこの引数に区切り文字を指定します。
|