Chromeで開発者ツールONしてConsoleで入力して試せる
コンソール出力は
console.log('hoge');
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))
/// <summary> /// 文字列の指定した位置から指定した長さを取得する /// </summary> /// <param name="str">文字列</param> /// <param name="start">開始位置</param> /// <param name="len">長さ</param> /// <returns>取得した文字列</returns> public static string Mid(string str, int start, int len) { if (start <= 0) { throw new ArgumentException("引数'start'は1以上でなければなりません。"); } if (len < 0) { throw new ArgumentException("引数'len'は0以上でなければなりません。"); } if (str == null || str.Length < start) { return ""; } if (str.Length < (start + len)) { return str.Substring(start - 1); } return str.Substring(start - 1, len); } /// <summary> /// 文字列の指定した位置から末尾までを取得する /// </summary> /// <param name="str">文字列</param> /// <param name="start">開始位置</param> /// <returns>取得した文字列</returns> public static string Mid(string str, int start) { return Mid(str, start, str.Length); } /// <summary> /// 文字列の先頭から指定した長さの文字列を取得する /// </summary> /// <param name="str">文字列</param> /// <param name="len">長さ</param> /// <returns>取得した文字列</returns> public static string Left(string str, int len) { if (len < 0) { throw new ArgumentException("引数'len'は0以上でなければなりません。"); } if (str == null) { return ""; } if (str.Length <= len) { return str; } return str.Substring(0, len); } /// <summary> /// 文字列の末尾から指定した長さの文字列を取得する /// </summary> /// <param name="str">文字列</param> /// <param name="len">長さ</param> /// <returns>取得した文字列</returns> public static string Right(string str, int len) { if (len < 0) { throw new ArgumentException("引数'len'は0以上でなければなりません。"); } if (str == null) { return ""; } if (str.Length <= len) { return str; } return str.Substring(str.Length - len, len); }