Excel VBAで指定した文字列を他のファイルに挿入する方法

Visual Basic

Excel VBAを使用して、指定したセルの文字列を外部ファイルに挿入する方法について解説します。この例では、ExcelシートのA1セルにある文字列(’DEF’)を、指定したVBSファイル(’C:\Users\DESIGN.VBS’)内の文字列(’ABC’)の後ろに挿入する方法を説明します。

1. VBAを使用してファイル操作を行う

VBAを使ってファイル内のテキストを操作する場合、まずは対象のファイルを開き、内容を読み込む必要があります。その後、必要な文字列を探して挿入します。今回はテキストファイル(VBSスクリプトファイル)に文字列を追加する方法です。

2. 文字列の検索と挿入

以下のコードでは、指定されたファイルを開き、’ABC’という文字列を見つけた後、その後ろに’A1セルの内容(DEF)’を挿入します。

Sub InsertTextIntoFile() 
 Dim filePath As String 
 Dim fileContent As String 
 Dim line As String 
 Dim A1Text As String 
 Dim fileNumber As Integer 
 
 ' A1セルの内容を取得 
 A1Text = ThisWorkbook.Sheets(1).Range("A1").Value 
 ' ファイルパスを指定 
 filePath = "C:\Users\DESIGN.VBS" 
 
 ' ファイルを開いて内容を読み込む 
 fileNumber = FreeFile 
 Open filePath For Input As fileNumber 
 fileContent = "" 
 Do While Not EOF(fileNumber) 
 Line Input #fileNumber, line 
 fileContent = fileContent & line & vbCrLf 
 Loop 
 Close fileNumber 
 
 ' 'ABC'の後にA1の内容を挿入 
 fileContent = Replace(fileContent, "ABC", "ABC" & A1Text) 
 
 ' 修正後の内容でファイルを再保存 
 fileNumber = FreeFile 
 Open filePath For Output As fileNumber 
 Print #fileNumber, fileContent 
 Close fileNumber 
End Sub

このコードは、指定されたVBSファイルを開き、’ABC’を見つけて、その後にA1セルに入力された文字(’DEF’)を追加します。ファイルを再保存することで変更を反映させます。

3. コードの説明

コードの動作を簡単に説明します。

  • A1セルの内容を取得 – ThisWorkbook.Sheets(1).Range(“A1”).ValueでA1セルの内容を変数A1Textに格納します。
  • ファイルを読み込み – ファイルを開き、内容を一行ずつ読み込んでfileContentに格納します。
  • 文字列の挿入 – Replace関数を使って、’ABC’の後ろにA1の文字列(DEF)を挿入します。
  • ファイルの保存 – 最後に、変更した内容でファイルを上書き保存します。

4. まとめ

このVBAコードを使用すれば、Excelから外部ファイルに簡単に文字列を挿入することができます。特に、指定された場所に特定の文字列を追加したい場合に非常に有効です。プログラムファイル(VBSファイル)に文字列を追加することで、動的に内容を変更できるようになります。

コメント

タイトルとURLをコピーしました