こんな感じ
CREATE TABLE テーブル名(カラム名1, カラム名2, ... , UNIQUE(カラム名1, カラム名2, ...));
Function RemoveExtension(aFilename As String) As String '--- 拡張子の位置 ---' Dim posExt As Long posExt = InStrRev(aFilename, ".") '--- 拡張子を除いたパス(ファイル名)を格納する変数 ---' Dim strFileExExt As String If (0 < posExt) Then RemoveExtension = Left(aFilename, posExt - 1) Else RemoveExtension = aFilename End If End Function
・必要なものがExcelForSQLite3としてまとまってるのでありがたくダウンロード。
github.com
・zipDLして解凍した中にあるDLLをSqliteを利用するxlsmファイルと同じ場所におく。
32bitExcelならsqlite3.dll/SQLite3_StdCall.dllを
64bitExcelならx64フォルダにあるsqlite3.dllを使いましょう。
・SQLite3VBAModulesフォルダの中に標準モジュールがあるのでVBAのファイルのインポートで取り込む。
32bitExcelならSqlite3.bas / Sqlite3Demo.bas
64bitExcelならSqlite3_64.bas / Sqlite3Demo_64.bas
・Sqlite3Demoの中のAllTests()を呼び出して問題なく動いたらOK
Dim list As New ArrayList list.Add("A") list.Add("B") String.join(",",list.ToArray());
サンプルjson
{ "14": [ { "328": "1301", "332": "名前" }, { "328": "1305", "332": "名前" } ], "173": "", "174": "0", "175": "2", "176": "2021.08.16-20:50:28.087", "177": "2021.08.16-20:50:28.217", "192": "hogeData" }
分解サンプル
nugetから"Newtonsoft.Json"追加しとく
Imports Newtonsoft.Json.Linq Dim jsonObject = JObject.Parse(jsonstr) ' ループでjson分解 Dim futureCodeArray As New ArrayList Dim jsonObjectC1 For Each jsonObjectC1 In jsonObject("hogekey") Dim jsonObjectC2 For Each jsonObjectC2 In jsonObjectC1.First Debug.WriteLine(jsonObjectC2.Value) futureCodeArray.Add(jsonObjectC2.Value) Next Next
VS 2015より追加されてる
自前で用意しなくても良くなってたらしい
UNICODE
Private Function UnicodeBytesToString( ByVal bytes() As Byte) As String Return System.Text.Encoding.Unicode.GetString(bytes) End Function
シフトJIS(SJIS)
Private Function SJISBytesToString(ByVal bytes() As Byte) As String System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance) Return System.Text.Encoding.GetEncoding("Shift_JIS").GetString(bytes) End Function
ASCIIとUnicode以外のエンコーディングがサポートされなくなった。
シフトJISのEncodingを取得するには、「Encoding.GetEncoding("Shift_JIS")」を呼び出す前に、次の1行を追加すればOK
C#
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
VB.net
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance)
doubleに変換できるかで判断
string str = "-12.34"; //doubleに変換できるか確かめる double d; if (double.TryParse(str, out d)) { //変換出来たら、dにその数値が入る Console.WriteLine("{0} は数値 {1} に変換できます。", str, d); } else { Console.WriteLine("{0} は数字ではありません。", str); } //.NET Framework 1.1以前では、以下のようにする //if (double.TryParse(str, // System.Globalization.NumberStyles.Float | // System.Globalization.NumberStyles.AllowThousands, // System.Globalization.NumberFormatInfo.CurrentInfo, // out d))