ExcelからSQLiteを使う方法

sqlite for excel vba

 

 

こんにちは。ナガオカ(@boot_kt)です。

 

簡易で使い易いデータベースと言えばSQLiteですが、

そのSQLiteをExcelから使う方法を説明するよ!

ExcelからSQLiteを使う方法を書いてくださっている記事は幾つかありましたので参考にさせて戴きました

が、進め方がよく分からない部分が少しあって、悩む時間もあったので自分なりにまとめたよン

この記事のザックリした内容
◆対象読者

  • ExcelからSQLiteを使いたい人
  • Windows対象(Macで動くかどうかは知らん!)
  • Excel VBAもしくはプログラミングの経験がある方
  • データベースについての知識がある方
  • Excel VBAも、プログラミングも、データベースも知らん!って方は読んでも分からないと思うよ

 

◆解決できるかも知れないお悩み

  • ExcelからSQLiteを使う方法

 

 

 

知っておくと便利なURL

 

 

 

 

手っ取り早く結論教えろ!

能書きはイラネーーー!!!

さっさと教えろ!!!

 

というセッカチさんは、このファイル↓をダウンロードしてね
>> ExcelToSQLite.zip
※マクロが入っています。テストはしていないので、動かす場合は各自の自己責任で動かしてください。何か問題が発生しても作者は一切責任を負いません。

 

ダウンロードしたら…

  1. 解凍しやがれっ!
  2. SQLiteForExcelをダウンロードしやがれっ!
  3. SQLiteForExcelを解凍しやがれっ!
  4. SQLiteForExcelからSQLite3_StdCall.dllsqlite3.dllをコピりやがれっ!
  5. SQLite3_StdCall.dllsqlite3.dllをExcelToSQLite.xlsmと同じ場所に置きやがれっ!
  6. ExcelToSQLite.xlsmを起動しやがれっ!
  7. 動かしやがれっ!
  8. VBAのソースコードを読みやがれっ!
  9. イミディエイトウィンドウを見やがれっ!
     
  10. 以上っ!

 

 

↓ここからは、説明が欲しい方向け

ダウンロードするべきもの

1.SQLiteForExcel

基本的にはこれだけをダウンロードすればいい

>> SQLiteForExcelのダウンロード(SQLiteForExcel-1.0.zip)

 

2.SQLite

これをダウンロードする必要は無いはず

SQLite For Excelに同梱されているので、不要と言えば不要
SQLite For Excelに同梱されているsqlite3.dllを違うVerに置き換えるならダウンロードすればいいでしょう

>> SQLiteのダウンロード

ダウンロードするのはDLL版でいいよ

  • sqlite-dll-win32-x86-3200100.zip
  • sqlite-dll-win64-x64-3200100.zip

 

DLL版?EXE版?と悩む人は、EXE版は要らない

  • sqlite-tools-win32-x86-3200100.zip

 

SQLiteForExcelをダウンロードしたら解凍する

  1. SQLiteForExcel-1.0.zipを解凍する
  2. SQLiteForExcel-1.0/Distributionのディレクトリ(フォルダ)を開く
  3. SQLiteForExcel_64.xlsmを開く(SQLiteForExcel.xlsでもOK)
  4. ALTF11
  5. 標準モジュールの中にSqlite3.basがあるので、それをエクスポート(コピペでもいいよ)

 

自分用のExcelファイルを作る

  1. 自分のExcelファイルにSqlite3.basをインポート
  2. 自分のExcelファイルと同じディレクトリ(フォルダ)にSQLite3_StdCall.dllsqlite3.dllをコピペ
    SQLite3_StdCall.dllsqlite3.dllSQLiteForExcel-1.0/Distributionの中にある

 

自分用のExcelファイルでプログラムを組む

までは準備、

ここからがプログラミングの本番

でも、何をどう書けばいいの?

って思うよね

 

サンプルがあるので、それを見て作ればいいよ

 

  1. SQLiteForExcel_64.xlsmを開く(SQLiteForExcel.xlsでもOK)
  2. 標準モジュールの中にSqlite3Demo.basがあるので、それを見る
  3. この辺のプロシージャを参考として見ればいいでしょう
    • AllTests()
    • TestInsert()
    • TestSelect()

 

Sqlite3Demo.basの読み方

TestSelect()を読んでみましょう

コメントを追いかけてね

  1. ' Create the table
  2. ' Insert a record
  3. ' Select statement

【ここだけ読んでもオッケー】処理の順番

SQLite3*****という名前のメソッドを使うよ

※カッコの中は引数だよん

  1. イニシャル処理
    1. SQLite3Initialize()
      処理正常時に期待する戻り値:SQLITE_OK

     

  2. DBオープン
    1. SQLite3Open(DBファイルのパス, DB用ハンドル)
      処理正常時に期待する戻り値:SQLITE_OK

     

  3. CREATE TABLE文実行
    ※この3つで1セット

    1. SQLite3PrepareV2(DB用ハンドル, SQL文, SQL文用ハンドル)
      SQLステートメントの準備
      処理正常時に期待する戻り値:SQLITE_OK
    2. SQLite3Step(SQL文用ハンドル)
      SQLステートメントの実行
      処理正常時に期待する戻り値:SQLITE_DONE
    3. SQLite3Finalize(SQL文用ハンドル)
      SQLステートメントの削除(終了処理)
      処理正常時に期待する戻り値:SQLITE_OK

     

  4. INSERT文実行
    ※この3つで1セット

    1. SQLite3PrepareV2(DB用ハンドル, SQL文, SQL文用ハンドル)
      SQLステートメントの準備
      処理正常時に期待する戻り値:SQLITE_OK
    2. SQLite3Step(SQL文用ハンドル)
      SQLステートメントの実行
      処理正常時に期待する戻り値:SQLITE_DONE
    3. SQLite3Finalize(SQL文用ハンドル)
      SQLステートメントの削除(終了処理)
      処理正常時に期待する戻り値:SQLITE_OK

     

  5. SELECT文実行
    ※この3つで1セット

    1. SQLite3PrepareV2(DB用ハンドル, SQL文, SQL文用ハンドル)
      SQLステートメントの準備
      処理正常時に期待する戻り値:SQLITE_OK
    2. SQLite3Step(SQL文用ハンドル)
      SQLステートメントの実行
      処理正常時に期待する戻り値:SQLITE_ROW
      ※SELECT結果が複数行ある場合、何度もSQLite3Stepを呼び出す
      ※戻り値がSQLITE_DONEになればSELECT結果終了
    3. SQLite3Finalize(SQL文用ハンドル)
      SQLステートメントの削除(終了処理)
      処理正常時に期待する戻り値:SQLITE_OK

     

  6. DBクローズ
    1. SQLite3Close

     

トランザクション
トランザクションのやり方は、命令の順序は上記と同じなので省略

 

↓をダウンロードしてソースコード読んでね
>> ExcelToSQLite.zip
※マクロが入っています。テストはしていないので、動かす場合は各自の自己責任で動かしてください。何か問題が発生しても作者は一切責任を負いません。

 

DBクライアント

どちらかお好きな方を

A5:SQL Mk-2

>> A5:SQL Mk-2のダウンロード

PupSQLite

>> PupSQLiteのダウンロード

寄付しよーぜ!
どちらのソフトも寄付を募っています。

ソフトウェアを作るのは結構なお金がかかるので、常用するならぜひぜひお金を支払ってあげてくださいね~♪

僕はA5:SQL Mk-2を常用していますので、少額ながら寄付はしたよーーーん

 

Excel+SQLiteのレッスンしまっせぇ~♪

この記事読んでもよく分からない方は格安でレッスンしますよぉ~♪

VBAとデータベースを全くまるで何も知らない方でもOK(でもその場合はVBAやデータベースの説明からするので、レッスン回数とか時間が多くなるよ)

ある程度の知識がある方で、あくまでもこの記事に書いてる内容を説明するだけなら1-2回程度のレッスンで終了すると思いますよ

1回50分3,000円(+税)

お気軽にどうぞ!

※本記事の内容をレッスンする場合、無料体験レッスンは適用しません

>> お問い合わせはこちら

 

広告




 

さいごに、

「Excel+SQLite使うならAccessを使えばいいじゃん」って思うかも知れませんが、Accessはそのうち失くなるでしょう
それに、Excelをデータベースのフロントエンドとして使うと、業務に便利な場面もあるでしょう

また、データベースを使ってみたいけどOracleとかMySQLとかそういったのを導入するのは面倒だ!と思いますよね
最初はSQLiteを使えば対して導入作業も無いので、データベース入門には丁度ええンですよ

一回使ってみてください

 

 


 

プログラミング のレッスンに興味がある方、レッスン内容を聞いてみたい方、なんなりとお問い合わせください。
無料体験レッスンもありますのでお気軽にどうぞ!!!

 

 

sqlite for excel vba

2 件のコメント

  • VBA+SQLITEの記事から、こちらにたどり着きました

    SQLLITEのコマンドにアクセスする方法をご存知でしょうか?

    .mode csv
    .import

    等でできることがわかったのですが
    これをVBAベースでやるとなると、???な状態です

  • motochan へ返信する コメントをキャンセル

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    ABOUTこの記事をかいた人

    Windows/Mac/Linuxを使う現役システムエンジニア&プログラマ。オープン系・組み込み系・制御系・Webシステム系と幅広い案件に携わる。C言語やC#やJava等数多くのコンパイラ言語を経験したが、少し飽きてきたので、最近はRubyやPython、WordPressなどのWeb系を修得中。初心者向けのプログラミング教室も運営中。オンライン・対面・出張等でプログラミングをレッスンします。