■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#3652-0RE#3643:VBA6.0の関数をVB5.0で使用する方法魔界の仮面弁士1999-11-05(金) 10:51
     #3656-0RE#3652:VBA6.0の関数をVB5.0で使用する方法MaOh1999-11-05(金) 12:04
     #3694-0RE#3656:VBA6.0の関数をVB5.0で使用する方法キャラット1999-11-06(土) 03:28
#3652-0
RE#3643:VBA6.0の関数をVB5.0で使用する方法
> 先日オフィス2000をインストールし、VBA6.0で新規関数
> (Splitなど)を使用してみました。
> とても便利でVB5.0環境内でも使えるようにしたいのですが、

可能です。

MSScriptコントロールがあれば、VBAを自アプリのマクロ(正確にはスクリプト)として
呼び出すことが出来ます。(任意の命令を追加したりすることも可能です。)

「Microsoft Script Control」は、VB6に付属しています。
VB5であれば、MSのスクリプティングのサイトで配布されていて、自由にDLできます。


> VB5.0でVBA6.0の関数を使用できるようにするには
> どのようにすればよいでしょうか?

VBA関数を、「A」というFunctionでスクリプト定義して、
それをVBのFunctionでラップしてみました。(^^;)

Public Function Replace( _
    ByVal Expression As String, _
    ByVal Find As String, _
    ByVal ReplaceWith As String, _
    Optional ByVal Start As Long = 1, _
    Optional ByVal Count As Long = -1, _
    Optional ByVal Compare _
        As VbCompareMethod = vbBinaryCompare _
    ) As String
    Dim Script As Object
    Set Script = CreateObject("MSScriptControl.ScriptControl")
    Script.Language = "VBScript"
    Script.AddCode _
        "Function A(Expression, Find, ReplaceWith, Start, Count, Compare)     " & vbCrLf & _
        "    A = Replace(Expression, Find, ReplaceWith, Start, Count, Compare)" & vbCrLf & _
        "End Function                                                         "
    Replace = Script.Run("A", _
        Expression, Find, ReplaceWith, _
        Start, Count, Compare)
    Set Script = Nothing
End Function


Public Function Split( _
    ByVal Expression As String, _
    Optional ByVal Delimiter As String = " ", _
    Optional ByVal Count As Long = -1, _
    Optional ByVal Compare _
        As VbCompareMethod = vbBinaryCompare _
    ) As Variant
    Dim Script As Object
    Set Script = CreateObject("MSScriptControl.ScriptControl")
    Script.Language = "VBScript"
    Script.AddCode _
        "Function A(Expression, Delimiter, Count, Compare)   " & vbCrLf & _
        "    A = Split(Expression, Delimiter, Count, Compare)" & vbCrLf & _
        "End Function                                        "
    Split = Script.Run("A", _
        Expression, Delimiter, Count, Compare)
    Set Script = Nothing
End Function


Public Function Join( _
    ByVal List As Variant, _
    Optional ByVal Delimiter As String = " ") As String
    Dim Script As Object
    Set Script = CreateObject("MSScriptControl.ScriptControl")
    Script.Language = "VBScript"
    Script.AddCode _
        "Function A(List, Delimiter)  " & vbCrLf & _
        "    A = Join(List, Delimiter)" & vbCrLf & _
        "End Function                 "
    Join = Script.Run("A", List, Delimiter)
    Set Script = Nothing
End Function
#3656-0
RE#3652:VBA6.0の関数をVB5.0で使用する方法
> 「Microsoft Script Control」は、VB6に付属しています。
> VB5であれば、MSのスクリプティングのサイトで配布されていて、自由にDLできます。

http://www.asia.microsoft.com/Japan/Developer/Scripting/default.htm
#3694-0
RE#3656:VBA6.0の関数をVB5.0で使用する方法
題名について、複数の方から数々のレスを頂きありがとうございます。
早速Microsoft Script Controlを導入して、試してみようと思います。
ありがとうございました。
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)