TextStreamでテキストファイル操作【ExcelVBA】

Microsoft Scripting Runtimeの参照設定を行いFileSystemObjectを参照する

OpenTextFileメソッドで指定したファイルを開きTextStreamオブジェクトを返す

引数 FileName ファイル名

iomode 入力・出力モードを指定

ForReading 読み取り専用 書き込み不可

ForWriting 書き込み用 同じ名前のファイルが既に存在する場合、以前の内容が上書き

ForAppending  ファイルを開き、ファイルの最後に書き込み

引数create FileNameで指定したファイルが存在しない場合新しいファイルを作成するかどうか

TRUE 新規ファイル作成

FALSE 作成しない(既定値)

引数format 開くファイルの形式を指定(省略するとASCII形式)

TristateUseDefault システムの既定の設定

TristateTrue Unicode形式

TristateFalse Ascii形式

TextStreamオブジェクト →テキストファイルの読み書きが可能

Closeメソッド → 閉じる

Readメソッド → 指定した文字数読み込んで結果の文字列を返す 引数Charactersに読み込みたい文字数を指定

ReadAllメソッド → ファイル全体を読み込み

ReadLineメソッド → ファイルから行全体を読み込み

Skipメソッド → 指定された文字数スキップ 引数Charactersにスキップする文字数を指定

SkipLineメソッド → 1行スキップ

Writeメソッド → 指定した文字列を書き込み 引数Textに書き込む内容を指定

WriteLineメソッド → 指定した文字列と改行文字を書き込み

WriteBlankLinesメソッド → 指定した数の改行文字を書き込み 引数Linesに書き込む改行文字数を指定

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

実際に使用したサンプルコード

Option Explicit
Public Sub Sample()

'FSOの使用準備
Dim 変数 As New Scripting.FileSystemObject

'開いたファイル用の変数
Dim ファイル As TextStream

'パスワード用の変数
Dim パスワード As String

'指定したファイルを開く
Set ファイル = 変数.OpenTextFile(Filename:=ThisWorkbook.Path & "\sample.txt", _
IOMode:=ForReading, Create:=False)

'ファイルを読み込んでパスワードに入れる
パスワード = ファイル.ReadAll

'取得したパスワードを元にファイルを開く
Workbooks.Open Filename:=ThisWorkbook.Path & "\book2.xlsx", Password:=パスワード

'最終的に閉じる
ファイル.Close

End Sub

コメントを残す

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