取り込みたいEXCEL Listを開かずEXCELに情報を自動で取り込む方法
取り込み方法順序としては以下のようになっています。
① すでに用意されているCSVファイルを開かずに読み込む
② 指定したEXCELのSHEETに張り付ける(ここではSheet「換算表」に張り付け)
③ 以降はワンクリックで取り込めるように標準化
初めに、開発タブよりVisual Basic Studio を起動し、Moduleを準備してマクロのコードを記述していきます。以下のコードを丸々コピーでも問題ありません。
通常の業務でも、サーバーに保管されているCSVファイルをEXCELにまとめてコピー&ペーストを行う機会も多いと思いますが、1回ならともかく定期的な作業となるとその時間も無駄な時間となってきます。もとからあるCSVファイル名称が固定で同じ場所に保管される場合は、本記事のVBAマクロを利用し1クリックでCSVを取り組むようにプログラミングできる方法をおすすめいたします。また、CSVファイルだけではなくデータファイルのパスを変更することで、EXCELのxlsxファイルも同時に取り込むことができます。
通常のVBAでのファイル取り込みは、①EXCELでファイルを開く ⇒ ②開いたファイルの内容をコピー ⇒ ③開いたファイルを閉じる ⇒ ④元のEXCELに張り付け という一連の流れになるかと思いますが、今回は①②③はバックグラウンド作業となっています。LOOP関数などで繰り返しCSVを高速に取り込む読み込む場合は大変優れています。
コードと説明
Sub Macro1()
Dim strFilePath As String
Dim queryTb As QueryTable
Dim wsImport As Worksheet
Set wsImport = Worksheets("換算表")
'CSVデータを取り込み先シートを指定
strFilePath = "C:\Users\00000\Desktop\Python\api-M15-usdjpy-eurusd-Audjap.csv"
'CSVの保存先のパスを指定
Set queryTb = wsImport.QueryTables.Add(Connection:="TEXT;" & strFilePath, _
Destination:=wsImport.Range("A1"))
'CSVの内容をqueryTbに取り込み
'Sheet「換算表」のセル「A1」に張り付け
With queryTb
.TextFilePlatform = 932 ' 文字コードを指定
.TextFileParseType = xlDelimited ' 区切り文字の形式
.TextFileCommaDelimiter = True ' カンマ区切り
.RefreshStyle = xlOverwriteCells ' セルに書き込む方式
.Refresh ' データを表示
.Delete 'CSVファイルとの接続を解除
End With
End Sub
CSVファイルの内容
取り込みたいCSVの内容は以下の通りです。

取り込み操作を標準化
取り込みボタンを作成し記載したコードと関連づけます。
完了次第、取り込みボタンをクリック。

取り込み完了
最新の情報に更新がされました。
コードの工夫次第で、他にもいろんな種類のCSVを好きなセルに取り込むことができます。
