前回から発展する
EXCEL2016はMDBファイルを作ってテーブルが作ることができる
ということがわかったので次はaccdbファイルを作ってみましょう
環境
Office 2016 64bit + Win 10 HOME
前提
Listというシートを作り、全部長整数型の数字(小数点がない)
ものを作ります。
Gapは差なのですが、式は入っていません。ここはVBAで計算して差を値だけ入れるためです。
なんでそんなことをしているかというと、13000行を超えているので計算式を入れていると遅くなるからです。
ここはsqlを作成する場合0を補う必要があります。
そして、HPにもあるように該当するエクセルファイルのあるフォルダにDBというフォルダを作り、sample.accdbというファイルを作ります。既存のファイルがあれば、それを削除します。
参照設定
今回は参照設定を新しいものに変えてみます
Microsoft ActiveX Object Libraly 6.1
Microsoft ADO Ext for DDL and Security
コードを変えるところ
前回Excel2016に変えるときに接続文字列が変わりました。
すると今回、変えるところがありません。
しいて言うならファイル名を変えます
Const cnsTitle = "AccDbの作成(ADOX)"
'///////////////
Const cnsMDB_FILE = "\SAMPLE.mdb"
Const cnsAccDB_FILE = "\SAMPLE.accdb"
Const cnsConnect1 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
'///////////////
'Const cnsConnect2 = ";Jet OLEDB:Engine Type=5;"
Const cnsSH0 = "設定"
Const cnsSH1 = "テーブル"
Type typKey
KeyName As String
KeyIdx As Integer
End Type
'■iniファイル読込み(String)
Private Declare PtrSafe Function GetPrivateProfileString Lib "KERNEL32.dll" _
Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
以下略
あとは変えるところは1行しかありません
' MDBは本ブックのフォルダの配下にある「DB」フォルダに作成
strMDB = strDB_Path & cnsMDB_FILE
ここを
strMDB = strDB_Path & cnsAccDB_FILE
にすると完成です。
最新版の参照設定でMDBも作れる。
それではこのままですよ、strMDB = strDB_Path & cnsMDB_FILE
としたままだとどうなるのでしょうか
mdbファイルが作れます。
実は参照設定をわざわざ古いバージョンにする必要もないのです。
比較してみよう
まあ一回かやらないので統計的な厳密さはないのですが、意外とaccDBの方が出来上がりが早く、MDBよりファイルサイズも小さくなりました。これはデータの種類にもよるのかもしれません。
しかしこのように自分で比較ができるというのは面白いと思います。ベンチマークにも使えるのではないでしょうか。
CSVはマクロではなく名前をつけて保存からCSVに保存しています。
ファイル形式 | MDB | accdb | CSV |
---|---|---|---|
ファイルサイズ | 564 KB | 456 KB | 168 KB |
作成時間 | 3:49 | 2:46 |