Excelが大好きだ!スマートフォン用の表示で見るExcelが大好きだ!Excel大好き経理マンがExcelの事を書き綴っていきます。VBA前回はCD・本データを格納しておく、SQLite3データベースを作成しました。www.excellovers.com今回は作成したデータベースへMediaMarkerからダウンローしたデータを挿入してみます。下記のコードを標準モジュールに記載してください。Function12はセットで使用するユーザー定義関数です。1第1引数で指定したCSVファイルを開いています。第2引数でヘッダーの取込有無を指定します。2はループ処理の直前とループ内の最終行で使用します。CSVファイルから一行分のデータを読み込み、第二引数で指定した文字で分割したデータを配列に取り込み、返り値としています。最後にCSVの読み込み位置を次の行に移動して処理終了です。CSVファイルから一行分配列に取り込み→データベースへ挿入を実現するために作成したけど、なんかしっくり来てない。2の関数は返す要素がない場合、空配列(要素数が-1)を返すのでそれを終了条件としている。4データベースへデータを挿入するSQL文は以下のとおりです。values(挿入データ)上記はテーブルの全ての列にデータを挿入する際の構文です。実際のテーブルの列の並びと同じように挿入データを記載します今回の取込データは全てText型ですので挿入データを『’』(シングルクォーテーション)で囲ってやるのが普通なのですが、挿入データの中に『'』が含まれていると正常に判定してくれませんので、『"』(ダブルクォーテーション)で囲っています。配列に取り込んだMediaMarkerからダウンロードしたCSVデータのうち必要な項目を選択してSQL文に指定しています。5今まで配列を返すユーザー定義関数で、該当する配列が無い時は適当な文字列を返したりしていたのですが、以下の記事で『空配列』というものを知ったので使用しています。配列を返す時は、返り値に対してUbound関数を使うことが多々ありますが、適当な文字列を返してしまうと、別の判定処理が必要になっていました。詳細は以下の記事を参考。infoment.hatenablog.com6CSVをカンマで区切って配列に取り込む際に、挿入データの中に『,』(カンマ)が含まれていると、思わぬ場所でデータが区切られてしまう場合があります。FP_MAKE_ARRAY_From_CSV関数はカンマとカンマの間の挿入データに含まれるカンマを無視して、正しく区切ったデータを返してくれる関数です。この関数はこちらのサイトを参考にさせていただきました。VBA応用(CSV形式テキストデータの読み込み:カンマ数不定版)まとめCD・本データをSQLite3データベースに取り込んだことで、一旦元となるデータベースが作成できました。次回は新規登録用のフォーム作成を行ってみたいと思います。(1)月別アーカイブはてなブログをはじめよう!ExcelLoverさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。