ExcelでSQLite操作手順を共有いたします。
https://github.com/govert/SQLiteForExcel/releases
SQLite For Excel Version 1.0 Zipファイルをダウンロードする。
・ダウンロードされたZipファイルを解凍する。
・解凍されたファイルの「Distribution」フォルダを開き、以下のファイルをコピーして作業用フォルダに貼り付ける。
1.PCのスペックが32Bitの場合
「Distribution」フォルダの中の以下
SQLite.dll
SQLite3_StdCall.dll
SQLiteForExcel.xls
2.PCのスペックが64Bitの場合
「Distribution」フォルダの中の以下
SQLite3_StdCall.dll
SQLiteForExcel_64.xls
「Distribution」フォルダの「x64」フォルダ中の以下
SQLite.dll
・SQLiteのDBファイルを作業フォルダの下におく。
例えば、ファイル名:Test.sqlite3
・例えば、64Bitの場合、SQLiteForExcel_64.xlsを開き、標準モジュールの「Sqlite3Demo」のAllTests関数の以下のように変更する。
TestFile = “保存フォルダ\Test.sqlite3”
InitReturn = SQLite3Initialize(ThisWorkbook.Path)
ここで、ThisWorkbook.Path(=ActiveのExcelファイルがあるフォルダ)にSQLite.dllあることを再確認しておく。
・Select文確認
例えば、関数TestSqliteSelect作成して、以下のコードを埋め込む。
Public Sub TestSelectCustomize()
#If Win64 Then
Dim myDbHandle As LongPtr
Dim myStmtHandle As LongPtr
#Else
Dim myDbHandle As Long
Dim myStmtHandle As Long
#End If
Dim RetVal As Long
Dim stepMsg As String
Debug.Print "----- TestSelect Start -----"
' Open the database - getting a DbHandle back
RetVal = SQLite3Open(TestFile, myDbHandle)
Debug.Print "SQLite3Open returned " & RetVal
'-------------------------
' Select statement
' ===============
' Create the sql statement - getting a StmtHandle back
RetVal = SQLite3PrepareV2(myDbHandle, "SELECT * FROM " & TableName, myStmtHandle)
Debug.Print "SQLite3PrepareV2 returned " & RetVal
' Start running the statement
RetVal = SQLite3Step(myStmtHandle)
If RetVal = SQLITE_ROW Then
Debug.Print "SQLite3Step Row Ready"
PrintColumns myStmtHandle
Else
Debug.Print "SQLite3Step returned " & RetVal
End If
Dim colCount As Long
Dim colName As String
Dim colType As Long
Dim colTypeName As String
Dim colValue As Variant
Dim i As Long
colCount = SQLite3ColumnCount(myStmtHandle)
Debug.Print "Column count: " & colCount
For i = 0 To colCount - 1
colName = SQLite3ColumnName(myStmtHandle, i)
colType = SQLite3ColumnType(myStmtHandle, i)
colTypeName = TypeName(colType)
colValue = ColumnValue(myStmtHandle, i, colType)
Debug.Print "Column " & i & ":", colName, colTypeName, colValue
Next
' Close the database
RetVal = SQLite3Close(myDbHandle)
Debug.Print "----- TestSelect End -----"
End Sub