取り込みたいEXCEL Listを開かずEXCELに情報を自動で取り込む方法【VBAマクロ簡単高速読み込み】

EXCEL
この記事は約4分で読めます。

取り込みたい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を好きなセルに取り込むことができます。

Twitterはこちら

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