hakeの日記

Windows環境でプログラミングの勉強をしています。

Visual Studio Community 2019 オフラインインストール

手順はこちらに書かれているとおり。
前回のVSC 2017の時と比べて引数の指定が増えているので注意。


vs_community.exeの取得

上記リンク先からダウンロードする。
 

ローカル インストール キャッシュの作成

今回は .NET デスクトップ開発のみ取得し、C:\VS2017lyoutフォルダに保存。
ダウンロードサイズはトータルで約2.3GBとなった。最初に取得した vs_community.exe は削除する。。

vs_community.exe --layout c:\vs2019layout --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Component.GitHub.VisualStudio --includeOptional --lang ja-JP

 

インストール

c:\vs2019layout\vs_community.exe --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Component.GitHub.VisualStudio --includeOptional

 

EXCEL VBAメモ - UserFormとの値の受け渡し(プロパティとプロシージャ)

ユーザーフォームと、その呼び出し側との値の受け渡しは標準モジュールに定義したPublic変数を介して行っていたのですが、プロパティとプロシージャでもできることを知ったのでメモ。
 

続きを読む

C# - コマンドライン環境での外部アセンブリの参照方法

Json.NETを試した時のメモ。

  1. 本家サイトから入手し、展開したNewtonsoft.Json.dllを適当なフォルダの置く(例:c\:foo)
  2. /libおよび/referrenceオプションを付けてコンパイルする。
csc.bat  program.cs  /lib:C:\foo  /reference:Newtonsoft.Json.dll

 

ソースにusingでアセンブリを追加する。

using System;
using Newtonsoft.Json;

以下略

EXCEL VBAメモ - 複数ファイルを同時オープンする場合のFileNumberの取得

マクロを組んでいて少し悩んだのでメモ
テキストファイルを読み書きする際にはFreeFile関数でFileNumberを取得して、ファイルに割り当てて使用するが、以下の様に事前にFileNumberを取得すると書き込み用ファイルのオープンで「ファイルは既に開かれています」というエラーになった。
原因は、変数 fni および fno に同じ値 1 が割り当てされていた為。

Sub test()
    Dim fni As Long
    Dim fno As Long

    fni = FreeFile
    fno = FreeFile
    Open ThisWorkbook.path & "\test1.csv" For Input As #fni
        Open ThisWorkbook.path & "test2.csv" For Append As #fno
            '処理
        Close #fno
    Close #fni
End Sub

 

この様な場合は、最初のFileNumberでオープンした後に次のFileNumberを取得する。

    fni = FreeFile
    Open ThisWorkbook.path & "\test1.csv" For Input As #fni
        fno = FreeFile
        Open ThisWorkbook.path & "test2.csv" For Append As #fno

EXCEL VBAメモ - SQLite3データベースのアクセス(SQLiteForExcel使用)

ExcelからODBCドライバをインストールせずにSQLite3へアクセスする方法

準備(64bit環境の場合)

  • Releases · govert/SQLiteForExcel · GitHub からSQLite For Excelの最新版を入手(現時点ではSQLiteForExcel-1.0.zip)しアーカイブの中から、SQLiteForExcel_64.xlsmをとりだして使用する。32bit環境では同梱されているSQLite3_StdCall.dllを同じ場所に置く必要があるようですが64bit環境では不要の様です。
  • SQLite Home Pageからsqlite3.dllを入手して別途コピーする。(現時点の最新は、sqlite-dll-win64-x64-3260000.zip)

 

動作確認

sqlite3.dllの置き場所に注意

    #If Win64 Then
        ' I put the 64-bit version of SQLite.dll under a subdirectory called x64
        InitReturn = SQLite3Initialize(ThisWorkbook.Path + "\x64")
    #Else

して、SQLiteForExcel_64.xlsmのSqlite3Demoモジュール中の AllTestsプロシージャを実行する。結果はDebug.Printでイミディエイトウィンドウに表示されるのでエラーが無ければOK

問題点

自分の環境(Winows10 1809 / Excel for Office 365(64bit) )ではTestBackupプロシージャの実行でExcelが落ちましたので、この機能は使用しないことにします。
 

続きを読む

EXCEL VBAメモ - SQLite3データベースのアクセス(SQLite ODBC使用)

ExcelからODBC経由でSQLite3へアクセスする方法

準備

  • SQLite ODBC Driver からSQLite ODBC Driverをダウンロードしてインストールする。64bit版はsqliteodbc_w64.exe(現時点の最新はVer.0.9996)
  • インストールを行うとsqlite3.dllがC:\Windows\System32に見つからないというメッセージが出るのでSQLite Home Pageからダウンロードして別途コピーする。(現時点の最新は、sqlite-dll-win64-x64-3260000.zip)

 

アンインストール時の注意点

インストールすると、C:\Windows\System32にいくつかのsqlite3*.*というファイルがコピーされるが通常のアンインストールで削除されないファイルがあるので完全にアンインストールを行う場合には手動で削除する必要がある。
 

参考

ODBCの操作については以下を参考にする

 

続きを読む

SQLite - ウィンドウ関数

特定のレコード範囲をウィンドウ設定して、そのウィンドウに対して操作を行う機能。

sqlite> select * from AAA;
tt          ii
----------  ----------
aa          6
bb          5
aa          4
bb          3
aa          2
bb          1

 

OVER句

続きを読む