忍者ブログ

2024-04-20(Sat)

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2019-02-16(Sat)

Excel VBAでCSVを簡単にインポート(読み込む)方法

仕事上、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

この記事にコメントする

Name
Title
Mail
URL
Comment
Pass
Pictgram
Vodafone絵文字 i-mode絵文字 Ezweb絵文字

Amazon

PR

情報サービス

楽天

ソフト関連

メーカー直販PC

周辺機器

ランキング

プロフィール

HN:
NORI
性別:
男性
趣味:
車でどこへでも
自己紹介:
文学部卒業ながら、ひょんなことからシステム会社に就職。
しかしながらあまりの激務に退職。もうシステム系はいやだと思っていたが、ひょんなことから企業の電算室に勤務することとなる。

カレンダー

03 2024/04 05
S M T W T F S
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 29 30

ブログ内検索

Google
Web ブログ内

最新TB

アクセス解析