はじめに
これは、Visual Basic Advent Calendar 2022の13日目の記事となります。
昨年、VB6.0の100%互換性 twinBASICを紹介しました。
それから1年経ち、VSCodeを使用しない専用の統合環境(IDE)のよるGUIを使用してフォーム作成が可能になっています。
エディタ部分については、VSCodeのソースをもとにウェブブラウザー上で動くようしたMonaco Editorで開発されています。
ベータ版
下記サイトから、2022/12/13時点の最新版「twinBASIC BETA 201」を今回紹介します。
起動画面
twinBASIC_IDE_BETA_201.zipを展開して、C:¥Toolフォルダに入れました。
twinBASIC.exeをダブルクリックして起動します。
NewタブとSampleタブとRecentタブが表示されます。
Newタブ
- Standard EXE
- ActiveX Control
- ActiveX EXE
- Standard DLL(non-ActiveX)
- Standard EXE(Console App)
- Import from VBP...
- Import from folder...
Sampleタブ
今回はSampleタブを選択して、先頭の「Sample 0. WebView2 Example」
初期画面
実行画面
Exsample 1
「Web Browser」では、WebView2コントロールを使用しています。
URLは「www.yahoo.co.jp」に変更して表示しました。
Exsample 2
「virtual Folder Mapping」では、WebView2コントロールを使用して、クリックイベントを奪ってメッセージボックスを表示したり、JavaScriptを実行したりすることができます。
Exsample 3
「Monaco and multiple WebView」では、VSCodeのソースをもとにウェブブラウザー上で動くようしたMonaco Editorでソースコードを表示しつつ実行結果を別パネルで表示しています。両方ともWebView2コントロールですね。
フォームデザイン画面
Exsample 1の「Web Browser」のフォームデザイン画面になります。
ツールボックス
右側画像の「Visual Basic 6.0 入門講座 ボタンを作る」にあったコントロールと比較しても揃っています。
ProgressBarとSharpは追加されていますね。WEBVIEWコントロールもパッケージとして使えるようになっています。
プロパティ
VBScriptデバッグ
前記事では、VSCode(twinBASIC拡張)でVBScriptのデバッグを確認しました。
今回は、twinBASICの統合環境で同じことをしてみます。
New Projectで「Standard EXE(Console App)」を選択しました。
今回はクラスファイルを追加して「WScriptObj」を作成してみます。
ソースコード
Class WScriptObj
Public Function Echo(ByVal message)
MsgBox message
End Function
Public Sub Sleep(ByVal time)
Dim tempDate As Date
time = time / 1000
tempDate = DateAdd("s", time, Now)
Do
DoEvents
Loop While Now < tempDate
End Sub
Public Sub Quit()
End
End Sub
End Class
Module MainModule
Public Sub Main()
Dim a
Dim b
Dim c
a = 1
b = 2
c = a + b
WScript.Echo c
Dim WScript As New WScriptObj
'VBS特有の機能をVBAで使用する
Dim RetStr, regEx, Match, Matches ' 変数を作成します。
Set regEx = CreateObject("VBScript.RegExp") ' 正規表現を作成します。
regEx.Pattern = "aiu" ' パターンを設定します。
regEx.IgnoreCase = True ' 大文字と小文字を区別しないように設定します。
regEx.Global = True ' 文字列全体を検索するように設定します。
Set Matches = regEx.Execute("123aiueo") ' 検索を実行します。
For Each Match In Matches ' Matches コレクションに対して繰り返し処理を行います。
RetStr = RetStr & "一致する文字列が見つかった位置は、"
RetStr = RetStr & Match.FirstIndex & " です。一致した文字列は、"
RetStr = RetStr & Match.Value & " です。" & vbCrLf
Next
MsgBox RetStr '正規表現結果を出力する
WScript.Sleep 3000 ' 3秒待機
WScript.Echo "テスト"
WScript.Quit ' 終了する
MsgBox "ここは実行されない"
End Sub
End Module
デバッグ
ブレークポイントで止まるので、ウォッチの値などが見てデバッグすることが出来ます。
感想
VSCodeの他の拡張機能は使えなくなりますが、twinBASICの統合環境の方がインストールも簡単だしファイルも分割出来るし便利です。
最後に
今更、VB6.0と思うかも知れませんが、VBScriptのデバッグ用途としても使えるしExcelとかのActiveXコントロールとかの開発用途としても使えます。
twinBASICでは、Visual Basic 6.0ランタイムが必要なくビルドしてネイティブEXE(win32 or win64)を作成することも出来ます。
いろいろ可能性はあると思います。