VBA:Accessで拡張子「tsv」のファイルを取り込む方法
1.tsvファイルを取り込む方法
Accessに取り込むデータが「tsv」の拡張子のファイルを提示されることがあります。
例:abcd.tsv
しかしtsvファイルのままだとAccessで取り込むことができません。
解決方法として以下のようにすれば取り込めます。
- まず拡張子「tsv」を「csv」に変換する。
- 次に取り込む際にタブ形式で取り込む
2.tsvファイルをcsvファイルに変換する方法
拡張子を変更するだけでCSVファイルとして扱えます。
ただ、手作業でするのはめんどくさいので以下のようなVBAを利用すれば、選択したパスのファイルが「tsv」なら「csv」に、「csv」なら「csv」のままとしておけばユーザの手間が減ります。
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 |
Private Sub 実行1_Click() Dim FilePath As String Dim FilePath_csv As String FilePath = "C:\Users\xxxxx\ファイル\test.tsv" Set FSO = New FileSystemObject If Right(FilePath, 4) = ".tsv" Then FilePath_csv = Left(FilePath_csv, Len(FilePath) - 4) & ".csv" '別の方法' 'FilePath_csv = Replace(FilePath, ".tsv", ".csv")' FSO.CopyFile FilePath, FilePath_csv '変数をFilePathに置き換えておけば、移行の処理は変更する必要はありません。' FilePath = FilePath_csv Else 'CSVならFilePathはそのまま' End If Set FSO = Nothing End Sub |
3.タブ形式で取り込む
取込みのインポート定義を以下のように「タブ」形式で取り込むように作成し、DoCmdのTransferText メソッドで取り込むようにします。
拡張子を変換してしまえば、あとはCSVと同じ感じです。
関連記事
AccessVBA:【DoCmd】【TransferText メソッド】CSVファイルのインポート・取込み
「TransferText メソッド」を使ったCSVのインポート・取込み方法について説明していきます。