ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

テキストファイル(UTF-8)を読み込み、書き出し(ADODB.Stream)

   

Stream オブジェクト

ADO(ActiveX Database Object)の Stream オブジェクト(ADODB.Stream)を使用すると UTF-8 形式のテキストファイルを読み込むことができます。
ADO を使用するには、ライブラリファイルへの参照設定を行う方法と、CreateObject 関数を使う方法があります。


ADODB.Stream


【書式】

<CreateObjects 関数を使用する場合>
Dim st As Object
Set st = CreateObject(“ADODB.Stream”)

<参照設定を行う場合>
Dim st As ADODB.Stream
Set st = New ADODB.Stream


引数・戻り値

Excel2003 以前では、Microsoft ActiveX Data Objects 2.8 Library を選択します。
Excel2007 以降では、Microsoft ActiveX Data Objects バージョン番号 Library を選択します。
参照設定の方法については、ファイルシステムオブジェクト(FileSystemObject)の使い方 を参照してください。

CreatObject 関数 を使用する場合は、参照設定の必要はありませんが、VBE で、自動メンバ表示等のコーディング支援機能が使用できません。また、マクロの実行速度も遅くなります。


Open メソッド / Close メソッド

Open は、Stream オブジェクト を開きます。
Close は、開いている Stream オブジェクト を閉じます。


【書式】

object.Open

object.Close


引数・戻り値

  • object  ・・・  対象となる Stream オブジェクトを指定します。

Type プロパティ

Stream オブジェクト内のデータ型(テキスト or バイナリ)を設定します。


【書式】

object.Type = StreamType


引数・戻り値

  • object  ・・・  対象となる Stream オブジェクトを指定します。
  • StreamType  ・・・  StreamTypeEnum 列挙型の定数またはその値を指定します。
    定数 内容
    adTypeBinary 1 バイナリデータ
    adTypeText 2 テキストデータ(既定値)



Charset プロパティ

ファイルの文字コードを指定します。


【書式】

object.Charset = CharacterCode


引数・戻り値

  • object  ・・・  対象となる Stream オブジェクトを指定します。
  • CharacterCode  ・・・  文字コードを表す文字列(String 型)を指定します。
    (例)UTF-8、Shift_JIS、euc-jp、ISO-2022-JP、Unicode(デフォルト)など


LoadFromFile メソッド

指定したファイルの内容を Stream に読み込みます。


【書式】

object.LoadFromFile FileName


引数・戻り値

  • object  ・・・  対象となる Stream オブジェクトを指定します。
  • FileName  ・・・  ファイルの名前を文字列型(String)で指定します。指定したファイルが存在しない場合は、エラーが発生します。


SaveToFile メソッド

Stream オブジェクトの内容を指定したファイルに保存します。


【書式】

object.SaveToFile FileName [, SaveOptions]


引数・戻り値

  • object  ・・・  対象となる Stream オブジェクトを指定します。
  • FileName  ・・・  ファイルの名前を文字列型(String)で指定します。
  • SaveOptions  ・・・  新規ファイルを作成するかどうかを SaveOptionsEnum 値で指定します(省略可)。
    定数 内容
    adSaveCreateNotExist 1 FileName で指定したファイルが存在しない場合は新規のファイルを作成します(既定値)。
    adSaveCreateOverWrite 2 FileName で指定したファイルが存在しない場合は新規のファイルを作成し、存在する場合は上書きされます。



Position プロパティ

Stream オブジェクト内の現在の位置を取得、または設定します。


【書式】

<取得>
long = object.Position

<設定>
object.Position = long


引数・戻り値

  • object  ・・・  対象となる Stream オブジェクトを指定します。
  • long  ・・・  Stream オブジェクト内の位置を示す長整数型(Long)の値をバイト単位で設定(取得)します。


EOS プロパティ / SetEOS メソッド

EOS プロパティで、Stream オブジェクト内の現在の位置が末尾かどうかを確認します。SetEOS メソッドで、Stream オブジェクト内の位置をを末尾に設定します。


【書式】

<末尾かどうかを確認>
boolean = object.EOS

<末尾に設定>
object.SetEOS


引数・戻り値

  • object  ・・・  対象となる Stream オブジェクトを指定します。
  • boolean  ・・・  現在の位置が Stream の末尾かどうかを示すブール型(Boolean)の値を返します。現在の位置が末尾の場合は True、末尾でない場合は False を返します。


Read メソッド / ReadText メソッド

Stream オブジェクトから指定したバイト数または文字数のデータを読み取ります。


【書式】

object.Read [ NumBytes ]

object.ReadText [ NumChars ]


引数・戻り値

  • object  ・・・  対象となる Stream オブジェクトを指定します。
  • NumBytes  ・・・  ファイルから読み取るバイト数を長整数型(Long)の値で指定します。または、StreamReadEnum 値 を指定します。
  • NumChars  ・・・  ファイルから読み取る文字数を長整数型(Long)の値で指定します。または、StreamReadEnum 値 を指定します。

StreamReadEnum

定数 内容
adReadAll -1 現在の位置から EOS マーカー方向に、すべてのバイトをストリームから読み取ります(既定値)。
adReadLine -2 ストリームから次の行を読み取ります。



Write メソッド / WriteText メソッド

Stream オブジェクトにバイナリデータまたはテキストデータを書き込みます。


【書式】

object.Write Buffer

object.WriteText Data [ ,Options ]


引数・戻り値

  • object  ・・・  対象となる Stream オブジェクトを指定します。
  • Buffer  ・・・  Stream オブジェクトに書き込むバリアント型(Variant)の値を指定します。
  • Data  ・・・  Stream オブジェクトに書き込む文字列型(String)の値を指定します。
  • Options  ・・・  指定した文字列の終わりに行区切り文字を書き込むかどうかを StreamWriteEnum 値で指定します(省略可)。
    定数 内容
    adWriteChar 0 引数 Data で指定した文字列を書き込みます(既定値)。
    adWriteLine 1 Data で指定した文字列と行区切り文字を書き込みます。




ConvertFormula メソッド 使用例

サンプルVBAソース 1


実行結果

ADO Stream オブジェクト テキスト(UTF-8)読み込み



サンプルVBAソース 2


実行結果(作成されたテキストファイル)

ADO Stream オブジェクト テキスト(UTF-8 BOMあり)書き出し



サンプルVBAソース 3


実行結果(作成されたテキストファイル)

ADO Stream オブジェクト テキスト(BOMなし)書き出し


サンプルVBAソース 4


実行結果

ADO Stream オブジェクト BOMありなしのチェック



 - VBA基本 , , , , , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

Option Compare Text 例
Option Compare ステートメント

Option Compare ステートメントの使い方 【書式】 Option C …

色の設定(Color プロパティ・RGB 関数)

Color プロパティ Color プロパティは、指定したオブジェクトの色を取得 …

Chr 関数 例
文字列:指定した文字コードに対応する文字を返す(Chr 関数)

Chr 関数の使い方 【書式】 result = Chr ( code ) 引数 …

Join 関数
Join 関数(配列の要素を結合)

Join 関数 1次元配列の各要素を指定した区切り文字で連結します。 【書式】 …

Resize プロパティ1
指定したセル範囲のサイズを変更(Resize プロパティ)

Resize プロパティ 指定したセル範囲のサイズ(行数や列数)を変更します。 …

UBound LBound 関数 使用例01
配列の要素数を取得する(UBound 関数・LBound 関数)

UBound 関数・LBound 関数 【書式】 result = UBound …

Weekday 関数・WeekdayName 関数 使用例
日付時刻:日付から曜日を取得( Weekday 関数、WeekdayName 関数 )

Weekday 関数(日付から曜日を表す数値を返す)の使い方 【書式】 week …

引数の整数部分を取得する(Fix 関数・Int 関数)

Fix 関数・Int 関数の使い方 【書式】 number_fix = Fix …

固定長形式で分割(TextToColumns メソッド)
セルのデータを固定長形式で複数のセルに分割する(TextToColumns メソッド・Parse メソッド)

固定長形式でセルを分割 TextToColumns メソッドや Parse メソ …

no image
XlThemeColor 列挙型

XlThemeColor 列挙 定数 値 内容 xlThemeColorDark …