ExcelのVBAでGetOpenFilenameメソッドを使ってCSVファイルから読み込んだデータをアクティブセルに貼り付けるサンプルプログラム

GetOpenFilenameメソッドを使い[ファイルを開く]ダイアログボックスを表示して選択したCSVファイルのデータをインポートしてアクティブセルを起点に貼り付けるサンプルプログラム。

サンプルプログラム中のSplit関数の第二引数に別の区切り記号を指定すれば、カンマ区切りのCSVファイルに限らず、別の区切り記号を使ったテキストファイルに流用が可能。

以下にサンプルプログラムを記述。

スポンサーリンク

VBAサンプルプログラム

以下のサンプルプログラムは、実行時にカレントディレクトリをデスクトップフォルダ変更した上で[ファイルを開く]ダイアログボックスを表示している。

Sub Sample01()
Dim OpenFileName
'カレントディレクトリをデスクトップに変更
Set wScriptHost = CreateObject("WScript.Shell")
ChDir wScriptHost.SpecialFolders("Desktop")
    OpenFileName = Application.GetOpenFilename("CSVファイル,*.csv")
        If OpenFileName <> False Then
            Dim Fno As Long, txtData, arrData
            Dim i As Integer, j As Integer
            
                Fno = FreeFile
                Open OpenFileName For Input As #Fno
                  '先頭行をスキップしたい場合は、以下の1行のコメントアウトを外す
                  'Line Input #Fno, txtData
                    
                    j = 0
                    Do While Not EOF(Fno)
                        Line Input #Fno, txtData
                        'カンマ以外が区切り記号になっている場合は、
                        'Split関数の第2引数を変更すればよい
                        arrData = Split(txtData, ",")
                            For i = 0 To UBound(arrData)
                                ActiveCell.Offset(j, i).Value = _
                                        Replace(arrData(i), """", "")
                                        '↑引用符を削除する処理
                            Next i
                            j = j + 1
                    Loop
                Close #Fno
        End If
End Sub

コメント

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