スポンサーリンク

マクロ(Excel VBA)で CSV ファイルを開いてシートの中に取り込む方法

The following two tabs change content below.

松井 元(まつい はじめ)

静岡県三島市の松井会計事務所に勤務する理系税理士。 文理両方のスキルの融合を考えており、このブログは以下を中心に更新している。
●税金・会計に関すること
●IT(Excel、VBAなど)を使った業務効率化
●自分のこと(考え、私生活)

さらに詳細なプロフィールはこちら
松井会計事務所へのお仕事ご依頼・お問い合わせはこちら
税金・会計の無料メルマガはじめます

会計税務ソフトや IT 機器でデータを CSV 入出力ができるか否かは重要です。

全ての会計税務ソフト・IT機器にCSV入出力機能を付けて欲しい
拡張子が「.csv」となっているファイルのことをCSVファイルと言います。 (同様のものとしてテキストファイルなどもあります。) CSVとはデータの形式のことをいい、ずっと昔から存在します。 私は、日頃よくCSVファイルを使い...

データをCSV 出力できれば、そのデータを Excel シート上に取り込んで使うことができます。

今日は、選択した CSV ファイルの中身を Excel シート上に取り込むマクロ(Excel VBA)を実例を示しながら紹介します。

スポンサーリンク

1、CSV 出力したデータの使い方

実例として、「科目コードと科目名」のデータが入った CSVファイルを選択して Excel シートに取り込んで使う場合を考えてみます。

シート上に入力した科目コードから科目名を検索できるようにします。

シート設計

Excel シート上に「メイン画面」と「CSVデータ取込み」の2つのシートがあります。

「メイン画面」シートはこのように↓なっています。

Image

黄色の「CSVデータ取込み」ボタンをクリックすればマクロが実行して、CSVファイルを選択できます。

image

そして選択した CSV ファイルがもう一つの「CSVデータ取込み」シートに取り込まれます。

「CSVデータ取込み」シートは何も取り込んでいない状態では白紙です↓

Image

取り込むとズラッとデータが入ってきます↓

image

さて、「メイン画面」シートのセル「D8」には以下の数式を埋め込んであります。

「=VLOOKUP(D7,CSVデータ取込み!$A$8:$B$300,2)」

image

VLOOKUP 関数を用いて、入力した科目コードに該当する科目名を「CSVデータ取込み」シートの該当する箇所から検索しているわけですね。

具体的には、「メイン画面」シートのセル「D7」に入力した科目コードと一致する値を「CSVデータ取込み」シートのセル「A8~B300」の範囲の一番左側の列(A列)から調べ出して、該当する行の左から2列目(B列)の科目名を抽出しています。

Image

VLOOKUP 関数の使い方については、これまでに何度か記事にしているので参考にして下さい。

Excel(エクセル) VLOOKUP 関数の基本的な使い方、検索方法をFALSEにして完全一致検索をする場合
Excel(エクセル)でデータの一覧から、条件に一致する情報を取り出したいときがあると思います。 そんなときに使える便利な関数が、VLOOKUP 関数です。 この関数を使えば、例えば ・「従業員の名前」という条件から「年齢...
Excel(エクセル) VLOOKUP 関数の基本的な使い方、検索方法をTRUEにしてあいまい検索、配偶者の所得金額から配偶者控除・配偶者特別控除を計算する
Excel(エクセル)でデータの一覧から、条件に一致する情報を取り出す方法として、VLOOKUP 関数について以下の記事で説明しました。 VLOOKUP 関数 は「=VLOOKUP(検索値,範囲,列番号,検索方法)」のように4...
Excel(エクセル) IFERROR 関数を用いて VLOOKUP 関数で検索した値が存在しない場合にエラー(#N/A)を表示させない方法
Excel(エクセル)で VLOOKUP 関数を用いてデータを検索をする場合において、検索値と一致するデータが存在しないとエラー表示「#N/A」が出てしまいます。 今日は、このエラー表示「#N/A」を出さない方法を紹介します。 ...

さて、「メイン画面」シートのセル「D7」に試しに「612」と入力してみると、該当する科目名「売上高」がセル「D8」に表示されることが分かります。

image

会社ごとのデータ

このように会社ごとの「科目コードと科目名」のデータがあり、対象となる会社を変える場合には「CSVデータ取込み」ボタンを押して該当する会社の CSVファイルを選択してデータを読み込んで使う前提のものです。

CSVデータがあれば、まずそれを Excel に取り込んで後は自由に使うことができます。

今回のようにVLOOKUP 関数を使って必要な情報を抽出することもできますし、他にもデータを加工して使うことも考えれるでしょう。

2、CSV ファイルを開いてシートの中に取り込むマクロ(Excel VBA)

プログラミングコード

「メイン画面」シートの「CSVデータ取込み」ボタンに組み込んである、CSV ファイルを開いてシートの中に取り込むマクロのプログラミングコードを以下に示します。

コード説明

さて、上記のプロシージャについて説明しますね。

変数の定義

この部分↑では、シート名を入れ込む変数を定義しています。

●「A_Sheet」はExcelファイルのシート名を入れ込む変数
●「Csv_Import_File」は Excelファイルに取り込むCSVファイルの名前を入れ込む変数

です。

シート名の読み込み

ここでは、変数「A_Sheet」に今アクティブになっている(操作している)シートの名前を入れ込んでいます。

このマクロは「メイン画面」シート上で実行されるので、変数「A_Sheet」には「メイン画面」という名前が入ります。

CSVファイルの読み込み

さて、今回のコードの重要なポイントはこの部分↑です。

「Csv_Import_File = Application.GetOpenFilename(“CSVファイル,*.csv”)」

この部分↑は、Application オブジェクトの GetOpenFilename メソッドにより指定したタイプのファイルを選択できるようになります。

GetOpenFilename メソッドは Application.GetOpenFilename(“コメント,ファイル種類“)のように記述します。

「Application.GetOpenFilename(“CSVファイル,*.csv”)」と記述すれば

コメントは「CSVファイル」
ファイル種類は「CSV」

ということになります。

コメントの部分は何を書いても問題ありませんが、ファイル種類の部分は取り込みたいファイルの種類をきっちり指定しなければなりません。

CSV であれば「*.csv」
TXT であれば「*.txt」

のように書きます。

「Csv_Import_File = Application.GetOpenFilename(“CSVファイル,*.csv”)」

セミナー開催致します。
◆4/22 30代半ばから税理士になった体験談セミナー

お仕事のご依頼は、以下のリンク先にある個別のフォームよりお願い致します。
◆税務・会計 顧問
◆税務・会計のスポットコンサルティング
◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン
◆東亜大学通信制大学院(法学専攻) 入試対策コンサル
◆その他のスポットコンサルティング(当ブログを読み何かご相談したい事項が出てきた方に向けたサービス)

税金・会計についての無料メルマガをはじめます。配信をご希望させる方は以下のリンク先にあるフォームよりお願い致します
◆メルマガ登録

と記述することで、選択した CSVファイルを変数「Csv_Import_File」に取り込みます。

マクロを実行すると次のような画面が出てきて、CSVファイルのみを選択できるようになります

先ほどの、コメントファイル種類はウインドウの右下に表示されます。

「If Csv_Import_File = “False” Then Exit Sub」

この部分↑は変数 Csv_Import_File に何も取り込まれなかった場合にプロシージャから出るようにしています。

つまり、CSV ファイルを選択するウインドウが出た際にキャンセルボタンを押すとマクロを終了するということですね。

CSVファイルのデータを Excel シートにコピペ

「ThisWorkbook.Sheets(“CSVデータ取込み”).Range(“A1:ZZ100000”).ClearContents」

ここでは、このワークブックの「CSVデータ取込み」シートのセル「A1~ZZ100000」の範囲の文字を削除しています。

ThisWorkbook とはマクロが組み込まれているワークブックを示します。

ClearContents メソッドは指定した範囲の数式と文字を削除します。

With Workbooks.Open(Csv_Import_File)
    .Sheets(1).Cells.Copy ThisWorkbook.Sheets(“CSVデータ取込み”).Range(“A1”)
    .Close
End With

ここでは名前が「Csv_Import_File」のファイル(選択した CSV ファイル)を開いて、そのファイルの1つ目のシートのすべてのセルをコピーして、このワークブックの「CSVデータ取込み」シートに張り付けています。

「Workbooks.Open(Csv_Import_File)」の Open メソッドによって指定したファイルを開きます。

With Workbooks.Open(Csv_Import_File) ~ End With の間には「Csv_Import_File」というファイルを開いた状態で行う処理を記述します。

「.Sheets(1).Cells.Copy ThisWorkbook.Sheets(“CSVデータ取込み”).Range(“A1”) 」

「.Sheets(1).Cells.Copy」の部分は開いた CSV ファイルのシートのすべてのセルをコピーすることを意味します。

「ThisWorkbook.Sheets(“CSVデータ取込み”).Range(“A1”)」の部分で、コピーしたデータをこのワークブックの「CSVデータ取込み」シートに張り付けることを指示しています。

「.Close」のでは開いた「Csv_Import_File」ファイル(CSV ファイル)を閉じています。

「Worksheets(A_Sheet).Activate」

ここでは「A_Sheet」という名前のワークシートをアクティブ(操作対象)にしています。

これにより処理が終わった後に「メイン画面」シートが開いた状態になります。

3、まとめ

マクロ(Excel VBA)で CSV ファイルを開いてシートの中に取り込む方法を説明しました。

税務会計ソフトや IT 機器から CSV データ出力をすることさえできれば、後はそのデータを Excel に取り込んで自由に使うことができます。

まずは CSV データを取り込む過程が必要なので、同様の用途がある方はこの方法を試してみて下さい。

セミナー開催致します。
◆4/22 30代半ばから税理士になった体験談セミナー

お仕事のご依頼は、以下のリンク先にある個別のフォームよりお願い致します。
◆税務・会計 顧問
◆税務・会計のスポットコンサルティング
◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン
◆東亜大学通信制大学院(法学専攻) 入試対策コンサル
◆その他のスポットコンサルティング(当ブログを読み何かご相談したい事項が出てきた方に向けたサービス)

税金・会計についての無料メルマガをはじめます。配信をご希望させる方は以下のリンク先にあるフォームよりお願い致します
◆メルマガ登録