VBA:ツールのバージョン管理(txtファイル利用)
そこでツールの起動時にバージョンをチェックして、ユーザに最新バージョンがあることを知らせるVBAを組み込むことにしました。
■バージョンチェック概要
今回はテキストファイルにツールの最新バージョンを記載し、サーバの共有フォルダなどで一括で管理を行い、起動時にチェックをするようにしています。
◆バージョン管理用テキストファイル
管理用のテキストファイルは以下のように登録しておきます。
ツールの数はいくつでも設定できます。
ツール名とバージョンの間は「タブ」区切りにします。
メモ帳のデフォルトの「UTF-8」だとVBAで文字化けをするので「ANSI」に変更して保存します。
■バージョン管理のVBA
今回はAccessで作ったので、最初のフォームオープン時にチェックするようにしています。
このVBAでは「C:\Users\VBA\28_バージョンチェック」フォルダにある「バージョン管理.txt」を見に行き、そこに記載された「testツール1」のバージョンが「ver1.00」と一致するかどうかチェックしに行っています。
サーバなどの共有フォルダに管理ファイルを置けば、他のユーザもこのファイルを使ってチェックができるのでバージョンの一括管理が可能になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
'フォームオープン時にチェックをするようにしています。' Private Sub Form_Open(Cancel As Integer) If checkVer = True Then MsgBox "バージョン一致" Else 'バージョン不一致' End If End Sub Function checkVer() As Boolean Dim toolName As String Dim toolVer As String Dim verFName As String Dim verFPath As String Dim verFullPath As String Dim msg As String Dim FileNo Dim txtLine As String Dim csvLine() As String toolVer = "ver1.00" 'ツールのバージョン変わったらここを変える' toolName = "testツール1"'ツール名' verFName = "バージョン管理.txt" 'バージョン管理用のテキストファイル' verFPath = "C:\Users\VBA\28_バージョンチェック" 'ここをサーバなどの共有フォルダにする' verFullPath = verFPath & "\" & verFName '" FileNo = FreeFile Open verFullPath For Input As #FileNo If Not EOF(FileNo) Then '最終行まで読み込み' Do While Not EOF(FileNo) Line Input #FileNo, txtLine 'Tabで分割' csvLine() = Split(txtLine, vbTab) If UBound(csvLine()) >= 1 Then 'ツール名が一致した場合' If toolName = csvLine(0) Then 'バージョンが一致した場合' If toolVer = csvLine(1) Then checkVer = True Else msg = "ツールが最新ではありません" & vbNewLine & vbNewLine & _ "実行しているバージョン:" & toolVer & vbNewLine & _ "最新のツールバージョン:" & csvLine(1) MsgBox msg, vbCritical checkVer = False End If Exit Do End If End If Loop End If Close #FileNo End Function |