Excel VBA Openステートメントで外部ファイルを開いて読み書きする

 

Excel VBA  Openステートメントは、外部ファイルを開いて読み書きするために使用されます。テキストファイルやバイナリファイルなど、さまざまな形式のファイルを操作するために利用します。具体的な使い方や、注意点やサンプルコードを紹介します。

 

Excel VBA Openステートメントを利用

以下のようなシーンで利用されます。

・テキストファイルからデータを読み込む

・解析したデータを書き出す

・ログファイルの作成や更新

・他のアプリケーションとのデータ連携

 

使い方

基本的な構文
Open ファイル名 For モード As ファイル番号

・ファイル名:ファイルのパス
・モード:ファイルの開き方 (例: `Input`, `Output`, `Append`, `Binary`)
・ファイル番号:ファイル識別用の番号

 

ポイント

・ファイルを開いたら必ず閉じる (`Close`) こと

・ファイルパスが正しいか確認すること

・存在しないファイルを開こうとするとエラーになるのでエラーハンドリングを実装すること

・ファイルアクセスが他のプロセスによってロックされていないか確認すること

 

Excel VBA Openステートメントのサンプルコード
テキストファイルを読み込む
Option Explicit

Sub ReadTextFile()
    Dim filePath As String
    Dim fileNum As Integer
    Dim fileContent As String
    Dim line As String
    
    filePath = "C:\Users\User\Desktop\DataCsv\テキスト.txt"
    fileNum = FreeFile
    
    On Error GoTo ErrorHandler
    Open filePath For Input As fileNum
    
    Do While Not EOF(fileNum)
        Line Input #fileNum, line
        fileContent = fileContent & line & vbCrLf
    Loop
    
    Close fileNum
    MsgBox fileContent
    Exit Sub
    
ErrorHandler:
    MsgBox "ファイルを開くことができませんでした: " & Err.Description
    Close fileNum
End Sub

テキストファイルに書き込む

Option Explicit

Sub WriteTextFile()
    Dim filePath As String
    Dim fileNum As Integer
    
    filePath = "C:\Users\User\Desktop\DataCsv\テキスト.txt"
    fileNum = FreeFile
    
    On Error GoTo ErrorHandler
    Open filePath For Output As fileNum
    
    Print #fileNum, "Hello, World!"
    Print #fileNum, "This is a sample text file."
    
    Close fileNum
    MsgBox "書き込みが完了しました。"
    Exit Sub
    
ErrorHandler:
    MsgBox "ファイルを書き込むことができませんでした: " & Err.Description
    Close fileNum
End Sub

ログファイルに追記する

Option Explicit

Sub AppendToLogFile()
    Dim filePath As String
    Dim fileNum As Integer
    Dim logMessage As String
    
    filePath = "C:\Users\User\Desktop\DataCsv\テキスト.txt"
    fileNum = FreeFile
    logMessage = "Log entry at " & Now
    
    On Error GoTo ErrorHandler
    Open filePath For Append As fileNum
    
    Print #fileNum, logMessage
    
    Close fileNum
    MsgBox "ログが追記されました。"
    Exit Sub
    
ErrorHandler:
    MsgBox "ログファイルを追記することができませんでした: " & Err.Description
    Close fileNum
End Sub

 

これらの例を使って、ファイルの読み書きやログの追記を行うことができます。適切なエラーハンドリングとファイルのクローズ処理を行うことで、安全で効率的なファイル操作を実現できます。

 

あなたもExcel VBAのスキルを証明できるようにしませんか? Excel VBA エキスパート資格は、VBAプログラミングの専門家としての信頼性を高めキャリアの成長に大きく貢献し、求人市場での競争力を高め、キャリア機会を拡大します。

 

当サイトでは、Excel VBAエキスパート認定資格取得に役立つ情報を提供しています。まずは問題集から挑戦してみませんか?

 

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。