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

シェアする

The following two tabs change content below.

松井 元(まつい はじめ)

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

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

会計税務ソフトや IT 機器でデータを 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 関数の使い方については、これまでに何度か記事にしているので参考にして下さい。

さて、「メイン画面」シートのセル「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”)」

お仕事のご依頼は、以下のリンク先にある個別のフォームよりお願い致します。
*リンク先は私が勤務する松井会計事務所の HP です。

◆税務・会計 顧問
◆税務・会計のスポットコンサルティング
◆経理業務効率化コンサルティング
◆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 データを取り込む過程が必要なので、同様の用途がある方はこの方法を試してみて下さい。

お仕事のご依頼は、以下のリンク先にある個別のフォームよりお願い致します。
*リンク先は私が勤務する松井会計事務所の HP です。

◆税務・会計 顧問
◆税務・会計のスポットコンサルティング
◆経理業務効率化コンサルティング
◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン
◆東亜大学通信制大学院(法学専攻) 入試対策コンサル
◆その他のスポットコンサルティング(当ブログを読み何かご相談したい事項が出てきた方に向けたサービス)

セミナー開催要望がありましたら、以下のリンク先にある個別のフォームよりお願い致します。
◆セミナー開催要望

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

————————————————

税理士試験についてのまとめはこちらです!

税法2科目免除大学院についてのまとめはこちらです!

kindle電子書籍を出版しました。

税理士試験の税法2科目免除のために大学院で税法論文(修士論文)を書いた経験を元に、大学院生としての目線から税法論文の書き方を体系化した書籍です↓

大学院での税法論文の書き方

本書籍の内容についてはこちらの記事をご確認下さい。

お問い合わせ・フォローボタン

———————————

よろしければフォロー下さい↓

Twitter フォローボタン:

Feedly フォローボタン:
follow us in feedly

Facebookページ:
*いいね!を押して頂くと更新情報が届きます。

レクタングル大 広告
レクタングル大 広告
関連コンテンツ



シェアする

フォローする