Excel VBA質問箱 IV

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

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


44147 / 76732 ←次へ | 前へ→

【37606】ユーザーフォームのオブジェクト指定方法
質問  わいわい  - 06/5/12(金) 20:13 -

引用なし
パスワード
   いつも質問に答えて頂き、お世話になっております。
以下に示すようなメインフォーム内のA列のComboBoxA_**を選択すると
その選択内容によって計算X or 計算Y or 計算Zのフォームが開くプログラムを作成しています。

 ┌────────────┐
 │メインフォーム     │  ┌──────┐┌──────┐
 │┌──┐┌──┐┌──┐│  │計算X    ││計算Y    │
 ││A_01││B_01││C_01││  │┌─┐┌─┐││┌─┐┌─┐│
 │└──┘└──┘└──┘│  ││BB││CC││││BB││CC││
 │┌──┐┌──┐┌──┐│  │└─┘└─┘││└─┘└─┘│
 ││A_02││B_02││C_02││  └──────┘└──────┘
 │└──┘└──┘└──┘│  ┌──────┐
       ・         │計算Z    │
       ・         │┌─┐┌─┐│
       ・         ││BB││CC││
 │┌──┐┌──┐┌──┐│  │└─┘└─┘│
 ││A_10││B_10││C_10││  └──────┘ 
 │└──┘└──┘└──┘│ ※実際は計算種類はもっと多いです。
 └────────────┘

各計算フォームを呼び出し計算することは出来たのですが、計算結果をメインフォームに記述する際に上手くいかずに困っています。どなたかお知恵をお貸し下さい。
例えば、A_01で計算Xを選択した場合
UserForm 「計算X」内で
Private Sub Button_OK_Click()
  Unload 計算X
  メインフォーム.B_01 = Format(BB, "#,##0.0")
  メインフォーム.C_01 = Format(CC, "#,##0.0")
End Sub
と記述すれば、動作的には問題のですが、これですとA_01〜A_10の全ての対応を記述しなければなりません。計算種類も多いことから、この出力部を整理したいのです。
UserForm「メインフォーム」内で
Private Sub A_01_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  ComboName = 1
  Call ChangeItem(A_01)
End Sub
Private Sub A_02_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  ComboName = 2
  Call ChangeItem(A_02)
End Sub



Private Sub A_10_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  ComboName = 10
  Call ChangeItem(A_10)
End Sub
を記述し、UserForm 「計算X」内で
Private Sub Button_OK_Click()
  Unload 計算X
  Call Calc_Output(ComboName)
End Sub
とする。
標準モジュールに
Public Sub Calc_Output(C_Name)
  With Worksheets("DATA").Cells(1, 1)
    .Offset(C_Name, 0).Value = "計算X"  ←こちらは出来ました。
    .Offset(C_Name, 1).Value = BB
    .Offset(C_Name, 2).Value = CC
  End With

  If C_Name < 10 Then
    Set BB_tmp = "メインフォーム.B_0" & C_Name
  Else
    Set BB_tmp = "メインフォーム.B_" & C_Name
  End If
   If C_Name < 10 Then
    Set CC_tmp Q = "メインフォーム.B_0" & C_Name
  Else
    Set CC_tmp = "メインフォーム.B_" & C_Name
  End If
  BB_tmp = Format(BB, "#,##0.0")
  CC_tmp = Format(CC, "#,##0.0")
End Sub
とすれば、出来るかな?と思ったのですが、ダメでした。
どうか回答宜しくお願いいたします。
0 hits

【37606】ユーザーフォームのオブジェクト指定方法 わいわい 06/5/12(金) 20:13 質問
【37608】Re:ユーザーフォームのオブジェクト指定... neptune 06/5/12(金) 20:45 発言
【37609】Re:ユーザーフォームのオブジェクト指定方法 ichinose 06/5/12(金) 21:05 発言
【37636】Re:ユーザーフォームのオブジェクト指定方法 Kein 06/5/13(土) 13:45 発言
【37667】Re:ユーザーフォームのオブジェクト指定... わいわい 06/5/15(月) 9:35 お礼

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