標準モジュールを書き換える方法は
こちらのサイトを参考に作成することができました。
しかし、フォームのクラスモジュールを
書き換えることがどうやってもできず、
わかる方がおられたらお教えください。
コード部分を削除して、テキストを貼り付けて、
コンパイルができればありがたいです。
サイト等ヒントでもありましたら
よろしくお願いいたします。
Access VBA と VBScript は似ていますが別の言語です。
複雑なものや VBA 固有の機能(型、イベント、GUI部品、印刷処理、DLL呼び出し等)を使っているようなものは移植は厳しいでしょう。
以下のような簡単なサンプルコードレベルであれば、移植は可能だと思います。
以下は Access VBA のクラスモジュールのサンプルです。
' File : TestClass.cls Private value As Long Private Sub Class_Initialize() value = 1 End Sub Public Function GetValue() As Long GetValue = value End Function ' File : TestModule.bas Sub TestMain() Dim test As New TestClass Debug.Print test.GetValue() End Sub
以下は、上記を VBScript に移植してみた場合のサンプルです。
' TestModule.vbs Class TestClass ' Private value As Long Private value Private Sub Class_Initialize() value = 1 End Sub ' Public Function GetValue() As Long Public Function GetValue() GetValue = value End Function End Class Call Main() Sub Main() ' Dim test As New TestClass Dim test Set test = New TestClass WScript.Echo test.GetValue() End Sub
分かり難くい表現ですいません。
2018/07/19 22:38:43VBScript「に」書き換えたいわけではなく、
VBScript「で」書き換えたいのです。
VBScript のコードが既にあり VBA に移植したい、という話でしょうか?
2018/07/19 23:11:38VBScript → VBA への移植であれば、難易度は低いかと思いますが、互換性の無い機能については、別途、書き換える必要があります。以下のような機能については互換性がありません。
■ VBScript の機能で VBA に含まれていない機能
https://msdn.microsoft.com/ja-jp/library/cc392354.aspx
以下の機能は VBA では使用できません。
・RegExp
・Class
・Eval
・Execute
■ Windows Script Host のオブジェクト モデル
https://msdn.microsoft.com/ja-jp/library/cc392522.aspx
WSH 関連のオブジェクトも VBA では使用できません。
例えば、WScript.Echo() は Debug.Print() などに置き換えるような対応が必要です。