【Excel VBA】ファイルの取り込み

当ページのリンクには広告が含まれている可能性があります。
ファイルの取り込み

こんにちは、ユーキです。

テキストファイルや、CSVファイルをEXCELに取り込めたらいいのにな?と思うことはないですか?
VBAを使えばそれができます。

今回は、ファイルを取り込み、その内容をEXCELに表示するやり方を紹介します。

目次

ファイルの取り込み

対象ファイルを開く

まずは対象ファイルを開きます。開くには、Open ステートメントを使用します。

今回、読み込むファイルは「C:\Temp\」に存在する「DataFile1.txt」とします。

Open "C:\Temp\DataFile1.txt" For Input As #5
Close #5

「#数字」は開いたファイルを扱うためのキーワード(ファイル番号)になります。数字部分は1 以上 511 以下であれば、どんな数字でも問題ありません。

ファイルは開いたら必ず閉じておきましょう。

内容を読み取る

開いたファイルを読み込むには、Line Input # ステートメントを使用します。

読み込むファイルの内容は以下のようにします。

りんご,200#2022/07/01,10
みかん,100#2022/09/15,20
パイナップル,500#2022/08/28,30

Dim fileText As String
Open "C:\Temp\DataFile1.txt" For Input As #5
    Do Until EOF(5) '()内の数字はファイル番号
        Line Input #5, fileText ’1行ごとに読み込み
        Debug.Print fileText
    Loop
Close #5

EXCELに書き出す

読み込んだファイルの内容をExcelに出力していきましょう。

Dim rowIdx As Long
rowIdx = 2 '出力するExcelの開始行
Dim fileText As String
Open "C:\Temp\DataFile1.txt" For Input As #5
    Do Until EOF(5) '()内の数字はファイル番号
        Line Input #5, fileText  '1行ごとに読み込み
        
        ActiveSheet.Cells(rowIdx, 1).Value = fileText
        rowIdx = rowIdx + 1
    Loop
Close #5

カンマで区切って表示する

読み込んだ1行をそのまま表示してもいいですが、カンマで区切られたデータごとにセルに表示する方法を考えてみましょう。

今回は、カンマで区切られているので、Split関数を使います。

Dim rowIdx As Long
Dim colIdx As Long
Dim i As Integer
Dim arrTxt As Variant
Dim fileText As String
rowIdx = 2 '出力するExcelの開始行
Open "C:\Temp\DataFile1.txt" For Input As #5
    Do Until EOF(5) '()内の数字はファイル番号
        Line Input #5, fileText  '1行ごとに読み込み
        
        colIdx = 1
        arrTxt = Split(fileText, ",")
        For i = 0 To UBound(arrTxt)
            ActiveSheet.Cells(rowIdx, colIdx).Value = arrTxt(i)
            colIdx = colIdx + 1
        Next
        rowIdx = rowIdx + 1
    Loop
Close #5

動作検証

では、早速動かしてみましょう。読み込むファイルの内容は以下の通りです。

りんご,200#2022/07/01,10
みかん,100#2022/09/15,20
パイナップル,500#2022/08/28,30

実行すると、以下のようになります(列幅は手動で調整しています)。

実行結果

まとめ

今回は、ファイルを読み込んで、EXCELに表示するやり方の紹介でした。

ファイルの読み込み
  • Open ステートメントでファイルを開く
  • 開いたファイルの読み込みは、Line Input # ステートメントを使う

少しでもお役に立てば、幸いです。

スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

旅好き職業プログラマ。文系大学卒業後、ITソフトウエア開発会社に勤務してプログラミング言語を学ぶ。現在は転職し、プロジェクトマネージャ的ポジションで生産管理システムの開発にあたる。
得意言語は、VB、VB.NET、C#.NET、Java、SQLなど。

目次