'テキストデータから1文字取り出す 文字列変数 = Input(1, 1)
'テキストデータから1文字ずつ全て取り出す Open ThisWorkbook.Path & "\新しいテキスト ドキュメント.txt" For Input As #1 Do Until EOF(1) = True 文字列変数 = Input(1, 1) Debug.Print 文字列変数 Loop Close #1
テキストデータから指定の文字数を取得するには「Input」関数を使用します
同じ名前のInput#ステートメントとは使い方が全く違いますので注意してください
例えば、テキストデータの文字列の文字コードを調べていきたい場合に使用できます
文字コードの取得は1文字ずつしか行えませんので、この関数で1文字ずつ取得していくことで簡単に調べることができます
関数の書式
引数(太字は必須引数)
(Number, Filenumber)
戻り値の型 String型
引数「Number」は取得する文字数です。バイト数ではなく文字数になりますので、半角も全角もどちらでも1文字は「1」になります
引数「Filenumber」はOpenステートメントで開いたファイル番号です
コード解説
文字列変数 = Input(1, 1)
関数で戻り値があるので、基本的に変数などに代入させて使用します
このコードでは、ファイル番号1の1文字を取得します
この関数をコード中で再度実行すると、次の文字が取得されます
なので、ループ処理を使用することで最後まで取得させることができます
2つ目の例コードのループ処理を以下で解説します
Open ThisWorkbook.Path & "\新しいテキスト ドキュメント.txt" For Input As #1 ~~ 中略 ~~ Close #1
Openステートメントの取得モード「Input」で指定テキストファイルを開いています
この時、対象ファイルが存在しない場合は新規作成されてしまいます
Close#ステートメントで開いたデータをメモリから閉じています
Do Until EOF(1) = True ~~ 中略 ~~ Loop
テキストデータを最後まで参照するためのループ処理です
取得するテキストデータの最終データを判定するEOF関数を使用してループを行います
文字列変数 = Input(1, 1) Debug.Print 文字列変数
ここで1文字を取得して、イミディエイトに出力しています
このループ処理のイミディエイト出力の箇所に、処理を組めばテキストデータを1文字ずつ加工していくことができます
関連の記事