3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Visual BasicAdvent Calendar 2022

Day 13

twinBASICの統合環境(IDE)による開発

Posted at

はじめに

これは、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フォルダに入れました。
image.png
twinBASIC.exeをダブルクリックして起動します。

NewタブとSampleタブとRecentタブが表示されます。

Newタブ

image.png

  • 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」
image.png

初期画面

フォームデザイン画面が表示されます。
image.png

実行画面

そのまま実行してみました。
image.png

Exsample 1

「Web Browser」では、WebView2コントロールを使用しています。
URLは「www.yahoo.co.jp」に変更して表示しました。
image.png

Exsample 2

「virtual Folder Mapping」では、WebView2コントロールを使用して、クリックイベントを奪ってメッセージボックスを表示したり、JavaScriptを実行したりすることができます。
image.png

Exsample 3

「Monaco and multiple WebView」では、VSCodeのソースをもとにウェブブラウザー上で動くようしたMonaco Editorでソースコードを表示しつつ実行結果を別パネルで表示しています。両方ともWebView2コントロールですね。
image.png

フォームデザイン画面

Exsample 1の「Web Browser」のフォームデザイン画面になります。
image.png

ツールボックス

image.pngimage.png
右側画像の「Visual Basic 6.0 入門講座 ボタンを作る」にあったコントロールと比較しても揃っています。
ProgressBarとSharpは追加されていますね。WEBVIEWコントロールもパッケージとして使えるようになっています。

プロパティ

WebViewコントロールのプロパティになります。
image.png

VBScriptデバッグ

前記事では、VSCode(twinBASIC拡張)でVBScriptのデバッグを確認しました。

今回は、twinBASICの統合環境で同じことをしてみます。

New Projectで「Standard EXE(Console App)」を選択しました。

今回はクラスファイルを追加して「WScriptObj」を作成してみます。
image.png

ソースコード

WScript.twin
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
MainModule.twin
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

デバッグ

ブレークポイントで止まるので、ウォッチの値などが見てデバッグすることが出来ます。
image.png

感想

VSCodeの他の拡張機能は使えなくなりますが、twinBASICの統合環境の方がインストールも簡単だしファイルも分割出来るし便利です。

最後に

今更、VB6.0と思うかも知れませんが、VBScriptのデバッグ用途としても使えるしExcelとかのActiveXコントロールとかの開発用途としても使えます。
twinBASICでは、Visual Basic 6.0ランタイムが必要なくビルドしてネイティブEXE(win32 or win64)を作成することも出来ます。
いろいろ可能性はあると思います。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?