2017年6月1日

【Excel】テキストファイルから読み込んだデータをセルに格納するマクロ


テキストファイルから読み込んだデータをセルに格納するマクロです。

たとえば、このようなテキストファイルのデータを読み込むとします。




そして、シートに[読込]ボタンを設置し、Clickイベントハンドラに次のように記述します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Sub button1_Click()
 
    Dim i As Integer
    Dim bufStr As String
    Dim filePath As String
     
    filePath = "C:\work\Excel\output.txt"
 
    'ファイルのオープン
    Open filePath For Input As #1
     
    i = 2
     
    Do While Not EOF(1)
     
        'ファイルから一行読込む
        Line Input #1, bufStr
         
        '読み込んだデータをセルに格納
        Cells(i, 2).Value = bufStr
         
        i = i + 1
    Loop
     
    'ファイルを閉じる
    Close #1
 
End Sub

少し解説すると、まず、OpenステートメントのInputモードでファイルを開きます。

構文
Open ファイルパス For Input As #ファイル番号

次に、EOF(ファイル番号)関数がFalseの間、繰り返しLine Inputを使いファイルから1行ずつデータを読み込みます。

構文
Line Input #ファイル番号, データを格納する変数

そして、最後にCloseステートメントでファイルを閉じます。



実行結果