| 
    
     |  | ▼弘美 さん: こんばんは。
 
 >こんにちは弘美です。(^^;
 >前に投稿をして教えていただいた事と関係しているのですが
 >callbynameをvb5.0では使えないのですが使える様に
 >するにはどのようにすればいいのですか?
 >やはりvb6.0にバージョンアップしなくてはいけないのかな?
 ↑5.0では確認していませんが・・・、使えないなら、vb6.0にするのが
 一番だとは思いますが・・・。
 どうしてもと言うなら、気がついた方法は・・・。
 
 OfficeでCallbyname関数が使えるのですから、
 Callbyname関数だけVBAで実行してもらうという方法は?
 
 例えばExcelブックCbl.Xlsの
 Thisworkbookモジュールに
 '==================================================
 Function cbn(obj, pr_str, flg, Optional get_pat = False)
 'get_pat true set false =
 If get_pat = True Then
 Set cbn = CallByName(obj, pr_str, flg)
 Else
 cbn = CallByName(obj, pr_str, flg)
 End If
 End Function
 
 なんていうコード記述して保存しておきます(この例題では
 "D:\My Documents\TESTエリア\cbn.xls"というファイル名)。
 
 
 VBからは、
 
 '========================================================
 Private Sub Command1_Click()
 Dim excel As Object
 Dim cbl As Object
 Set excel = CreateObject("excel.application")
 With excel
 .Visible = False
 Set cbl = .workbooks.open("D:\My Documents\TESTエリア\cbn.xls")
 MsgBox cbl.cbn(Text1, "text", 2)
 cbl.Close False
 .quit
 End With
 End Sub
 
 VB側のFormにText1とCommand1を貼り付けた場合の例ですが、Text1の内容が表示されます。
 
 
 上記のコードは、VB4.0で確認しました(5.0は持ってないので)。
 4.0・・、何年ぶりのインストールだろう・・。
 
 
 でも、Callbynameを使えるバージョンにするのがやっぱり一番だと思いますが
 
 |  |