仕事上、CSVファイルを利用することが多いです。
なのでCSVファイルをできるだけ簡単にエクセルにインポートする方法を探してみました。
VBAを使ってやってみます。
普通の人でも使いやすいようにボタンを付けて、ボタンをクリックしたら動作するようにします。
コードは以下のように書きました。
ボタンを押すとファイル選択のダイアログが出て選択できるようになっています。
インポート先は、"Sheet2"です。
クリックで別画面表示 コピーしやすいよう、以下にテキストで記載しておきます。
----------------------------------------------------------------
Sub ボタン1_Click()
Dim Ws As Worksheet
Dim Qt As QueryTable
Dim SelFile As Variant
Dim ConFile As String
SelFile = Application.GetOpenFilename("CSVファイル(*.csv),*.csv")
If VarType(SelFile) = vbBoolean Then
Exit Sub
End If
ConFile = "TEXT;" & SelFile
Sheets("Sheet2").Activate 'シートを選択
Set Ws = ActiveSheet ' CSV のデータを取り込むシート
Set Qt = Ws.QueryTables.Add(Connection:=ConFile, Destination:=Ws.Range("A1")) ' CSV を開く
With Qt
.TextFilePlatform = 932 ' 文字コードを指定
.TextFileParseType = xlDelimited ' 区切り文字の形式
.TextFileCommaDelimiter = True ' カンマ区切り
.RefreshStyle = xlOverwriteCells ' セルに上書き
.Refresh ' データを表示
.Delete ' CSV との接続を解除
End With
End Sub
-----------------------------------------------------
QueryTables.add は様々な指定ができます。
ここで指定いるのが、
.TextFilePlatform = 932 文字コードです。"932"はShift-JIS UTF-8は"65001"です。
.TextFileParseType = xlDelimited 指定した区切り文字ですよという指定。xlDelimitedは既定値です。
xlDelimited に対する区切り文字の指定で、csvだということ
タブ区切り文字の場合は
.TextFileTabDelimiter = True と記載します。
ここでテストとして
国勢調査の"年齢(5歳階級),男女別人口-都道府県"のcsvをダウンロードて読み込んでみます。
設置したボタンを押すと、ファイル選択が出るので、ダウンロードしたファイルを選択すると
うまく読めると思います。
[6回]
PR