Excel VBA質問箱 IV

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

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


32686 / 76734 ←次へ | 前へ→

【49282】オブジェクト名を変数として格納する場合について
質問  多摩川  - 07/5/30(水) 16:19 -

引用なし
パスワード
   こんにちは。多摩川と申します。

シートモジュールを起点に標準モジュールのプロシージャを呼び出すマクロを作成中です。
シートには
   B列  C列  D列 E列
5行 hexa  実行 Yes Yes
6行 penta 実行    Yes
7行 tetra 実行 Yes


X行 END

標準モジュールには下記のようなオブジェクトがあります。
・オブジェクト名:c_hexa
・オブジェクト名:f_hexa
・オブジェクト名:c_penta
・オブジェクト名:f_penta
・オブジェクト名:c_tetra
・オブジェクト名:f_tetra

さらに,オブジェクトには下記のようなSub プロシージャが存在します。
・Sub hexa(a, b) 'c_hexa or f_hexa の場合
・Sub penta(a, b) 'c_penta or f_penta の場合
・Sub tetra(a, b) 'c_tetra or f_tetra の場合
(プロシージャのコード内容はオブジェクトごとに異なります。)

まとめると,例えば,Callステートメントの場合
Call c_hexa.hexa(a, b)
Call f_hexa.hexa(a, b)
Call c_penta.penta(a, b)
こんな感じです。

'シートモジュール
Option Explicit
  Dim MyFName As String
  Dim OutType As String
  Dim IDcheck As String
  Dim YorN As Integer
  Dim i As Integer
'---------------------------------------------------------
Sub Main()
  i = 1
  IDcheck = 0
  YorN = 0
  MyFName = .GetOpenFilename
  If MyFName = "False" Then Exit Sub
With ThisWorkbook.Sheets(1)
  While .Cells(i + 4, 2) <> "END"
    If .Cells(i + 4, 3) = "実行" Then
      OutType = .Cells(i + 4, 2)
      If .Cells(i + 4, 4) = "Yes" Then IDcheck = 1
      If .Cells(i + 4, 5) = "Yes" Then YorN = 1
      i = i + 1
      Select Case YorN
        Case 0 '例,c_hexa.Length(a, b)
          '各プロシージャを呼び出す。
        Case 1 '例,f_hexa.Length(a, b)
          '各プロシージャを呼び出す。1.
      End Select
    End If
  Wend
End With
End Sub

i = 1 の場合,OutType = "hexa", IDcheck = 1, YorN = 1 となります。
"hexa"というキーワードが多数あるため,変数として格納しました。
そして,1.の所でプロシージャの呼び出しが起きるのですが,

Call "f_" & OutType & "." & OutType & "(MyFName, IDcheck)"

としたいのですが,これはだめなようです。では,と思い,

Application.Run """f_" & OutType & "." & OutType & "(MyFName, IDcheck) """

これも,だめなようでした。
どのようにして,呼び出しをすればよいのでしょうか?
恐れ入りますが,どなたかご教示下さい。
2 hits

【49282】オブジェクト名を変数として格納する場合について 多摩川 07/5/30(水) 16:19 質問
【49289】Re:オブジェクト名を変数として格納する場... Jaka 07/5/30(水) 16:57 発言
【49313】Re:オブジェクト名を変数として格納する場... 多摩川 07/5/31(木) 8:21 お礼
【49290】Re:オブジェクト名を変数として格納する場... ウッシ 07/5/30(水) 16:58 発言
【49312】Re:オブジェクト名を変数として格納する場... 多摩川 07/5/31(木) 8:14 お礼

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