異なる区切り記号の混在したテキストファイルを読み込む
●詳細● 

 サンプルでは、”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のときは、必ずこの引数に区切り文字を指定します。




戻る


Excel Word Access VBA! モーグ