テキストデータを1文字ずつ取得する

テキストデータから指定文字数を取得するにはInput関数を使用します。Input#ステートメントとは別物になります

'テキストデータから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文字ずつ加工していくことができます