Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


63429 / 76738 ←次へ | 前へ→

【17905】Re:Callbyname
発言  ichinose  - 04/9/9(木) 23:49 -

引用なし
パスワード
   ▼弘美 さん:
こんばんは。

>こんにちは弘美です。(^^;
>前に投稿をして教えていただいた事と関係しているのですが
>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を使えるバージョンにするのがやっぱり一番だと思いますが
0 hits

【17877】Callbyname 弘美 04/9/9(木) 14:15 質問
【17905】Re:Callbyname ichinose 04/9/9(木) 23:49 発言
【18007】Re:Callbyname 弘美 04/9/13(月) 11:34 お礼

63429 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free