VBA テキストファイルを開く方法

スポンサーリンク

OpenText【オープンテキスト】メソッド

新しいブックでテキストファイルを開くには、WorkBooks【ワークブックス】コレクションのOpenText【オープンテキスト】メソッドを使用します。

テキストファイルがタブやカンマなどの区切り文字で区切られている場合、列ごとにデータの形式を変換したり読み込まない列を指定したりすることができます。

OpenText【オープンテキスト】メソッドの書式と設定値(引数)の説明

[]内は省略可能です。
オブジェクト.OpenText(FileName[,Origin,StartRow,DataType,TextQualifier
,ConsecutiveDelimiter,Tab,Semicolon,Comma,Space,Other,otherchar
,FieldInfo,TextVisualLayout,DecimalSeparator,ThousandsSeparator
,TrailingMinusNumbers,Local])

  • オブジェクト(必須)
    Workbooks【ワークブックス】コレクションを指定します。
  • FileName【ファイルネーム】(必須)
    開きたいテキストファイルの名前を含むパスをダブルクォテーションで囲んで指定します。
    パスを指定しないでファイル名だけ指定した場合はカレントフォルダー内のファイルが対象になります。
  • Origin【オリジン】(省略可)
    テキストファイルを作成した機種をxlPlatform列挙型の定数で指定します。省略した場合は、テキストファイルウィザードに設定されている「元のファイル」の値が指定されます。

    xlPlatform列挙型の定数
    定数説明
    xlMacintoshマッキントッシュ
    xlWindowsウィンドウズ
    xlMSDOSMS-DOS
  • StartRow【スタートロウ】(省略可)
    読み込みを開始する位置を指定します。省略した場合は「1」が指定されます。
  • DataType【データタイプ】(省略可)
    テキストファイルのファイル形式をxlTextParsingType列挙型の定数で指定します。省略した場合はxlDelimitedが指定されます。

    xlTextParsingType列挙型の定数
    定数説明
    xlDelimited
    【エックスエルデリミテッド】
    タブやカンマなどの区切り文字でデータが
    区切られているファイル形式
    xlFixedWidth
    【エックスエルフィックスドワイズ】
    固定された各列の文字数によって区切り位置を
    判断する固定長フィールド形式
  • TextQualifier【テキストクエリファイラー】(省略可)
    データの引用符をxlTextQualifier列挙型の定数で指定します。省略した場合は、xlTextQualifierDoubleQuoteが指定されます。

    xlTextQualifier列挙型の定数
    定数説明
    xlTextQualifierDoubleQuote
    【エックスエルテキストクエリファイラーダブルクォート】
    引用符がダブルクォーテーション
    xlTextQualifierSingleQuote
    【エックスエルテキストクエリファイラーシングルクォート】
    引用符がシングルクォーテーション
    xlTextQualifierNone
    【エックスエルテキストクエリファイラーノン】
    引用符なし
  • ConsecutiveDelimiter【コンセクティブデリミタ】(省略可)
    連続した区切り文字を1文字として扱う場合はTrueを指定します。省略した場合はFalseが指定されます。
  • Tab【タブ】(省略可)
    区切り文字が「タブ」の場合はTrueを指定します。引数DataTypeがxlDelimitedのときのみ有効です。省略した場合は、Falseが設定されます。
  • Semicolon【セミコロン】(省略可)
    区切り文字が「セミコロン」の場合はTrueを指定します。引数DataTypeがxlDelimitedのときのみ有効です。省略した場合は、Falseが設定されます。
  • Comma【カンマ】(省略可)
    区切り文字が「カンマ」の場合はTrueを指定します。引数DataTypeがxlDelimitedのときのみ有効です。省略した場合は、Falseが設定されます。
  • Space【スペース】(省略可)
    区切り文字が「スペース」の場合はTrueを指定します。引数DataTypeがxlDelimitedのときのみ有効です。省略した場合は、Falseが設定されます。
  • Other【アザー】(省略可)
    区切り文字が「タブ、セミコロン、カンマ、スペース以外の場合にTrueを指定し、区切り文字を引数Otherchar【アザーキャラ】で指定します。引数DataTypeがxlDelimitedのときのみ有効です。省略した場合は、Falseが設定されます。
  • Otherchar【アザーキャラ】(省略可)
    引数Other【アザー】がTrueの場合に区切り文字を指定します。複数の文字を指定した場合は先頭の文字だけが指定されます。
  • FieldInfo【フィールドインフォ】(省略可)
    データを読み込むときに変換するデータ形式や固定長フィールド形式の区切り位置を配列で指定します。配列はArray【アレイ】関数を使用して記述します。省略した場合は各列のデータが標準形式で読み込まれます。開くテキストファイルが固定長フィールド形式の場合は省略できません。
  • TextVisualLayout【テキストビュジュアルレイアウト】(省略可)
    テキストの視覚的な配置を指定します。
  • DecimalSeparator【デシマルセパレーター】(省略可)
    数値の小数点の記号を指定します。省略した場合は、「形式のオプション」ダイアログボックスの設定値が指定されます。
  • ThousandsSeparator【サウザンセパレーター】(省略可)
    数値の桁区切り記号を指定します。省略した場合は、「形式のオプション」ダイアログボックスの設定値が指定されます。
  • TrailingMinusNumbers【トレイングマイナスナンバーズ】(省略可)
    末尾に負の符号が付いているデータを、負の値として扱いたい場合にTrueを指定します。文字列として扱いたい場合はFalseを指定します。省略した場合は、Falseが指定されます。
  • Local【ローカル】(省略可)
    「形式のオプション」ダイアログボックスの設定値を使用する場合にTrueを指定します。省略した場合は、Falseが指定されます。

引数FieldInfo【フィールドインフォ】で指定するArray【アレイ】関数の使用方法

データを読み込むときに変換するデータ形式は「Array(列番号,変換する形式)」という形で記述します。引数FieldInfo【フィールドインフォ】に設定する場合は、FieldInfo:=Array(Array(1,変換形式),Array(2,変換形式),・・・・・・)というような形になります。標準形式で読み込む列も含めてすべての列をArray関数(配列)に指定します。

Array【アレイ】関数に指定する変換する形式はxlColumnDataType列挙型の定数で指定します。変換の必要がない場合は「1」の標準形式を指定します。読み込む必要のない列は「9」のスキップ列を指定します。

xlColumnDataType列挙型の定数
定数変換する形式
xlGeneralFormat 【エックスエルゼネラルフォーマット】1標準
xlTextFormat【エックスエルテキストフォーマット】2文字列
xlMDYFormat【エックスエルエムディワイフォーマット】3MDY(月日年)形式の日付
xlDMYFormat【エックスエルディエムワイフォーマット】4DMY(日月年)形式の日付
xlYMDFormat【エックスエルワイエムディフォーマット】5YMD(年月日)形式の日付
xlMYDFormat【エックスエルエムワイディフォーマット】6MYD(月年日)形式の日付
xlDYMFormat【エックスエルディワイエムフォーマット】7DYM(日年月)形式の日付
xlYDMFormat【エックスエルワイディエムフォーマット】8YDM(年日月)形式の日付
xlSkipColumn【エックスエルスキップカラム】9スキップ列
xlEMDFormat【エックスエルエーエムディフォーマット】10EMD(台湾年月日)形式の日付

固定長フィールド形式のテキストファイルを開く方法

固定長フィールド形式は、データの文字数を固定にすることによって各列の開始位置を判別するファイル形式です。固定長フィールド形式のテキストファイルを開くには、引数DataType【データタイプ】にxlFixedWidth【エックスエルフィックスドワイズ】を指定し、引数FieldInfo【フィールドインフォ】に各列のデータの開始位置と変換する形式をArray【アレイ】関数を使用して指定します。

複数の区切り文字で区切られたテキストファイルを開く方法

複数の区切り文字を1文字として扱う場合は、引数ConsecutiveDelimiter【コンセクティブデリミタ】にTrueを指定します。タブとカンマで区切られたテキストファイルを開くには、引数DataTypeにxlDelimitedを指定して引数Tab【タブ】引数Comma【コンマ】にTrueを指定し、さらにタブとカンマが連続しているので、引数ConsecutiveDelimiter【コンセクティブデリミタ】にTrueを指定します。

使用例としてカンマ区切りのテキストデータを読み込むをご覧ください。
以上で、テキストファイルを開く方法についての解説を終了します。
ありがとうございました。

スポンサーリンク

関連記事・広告