Excel VBA質問箱 IV

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

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


9056 / 13644 ツリー ←次へ | 前へ→

【28958】コンボボックスについて tbtk 05/9/19(月) 16:32 質問[未読]
【28963】Re:コンボボックスについて ichinose 05/9/19(月) 19:35 発言[未読]
【28970】Re:コンボボックスについて ichinose 05/9/20(火) 7:52 発言[未読]
【28971】Re:コンボボックスについて tbtk 05/9/20(火) 8:29 お礼[未読]
【28973】Re:コンボボックスについて tbtk 05/9/20(火) 9:43 質問[未読]
【28974】Re:コンボボックスについて Statis 05/9/20(火) 10:37 発言[未読]
【28976】Re:コンボボックスについて tbtk 05/9/20(火) 10:57 発言[未読]
【28977】Re:コンボボックスについて Statis 05/9/20(火) 11:08 回答[未読]
【28978】Re:コンボボックスについて tbtk 05/9/20(火) 11:17 お礼[未読]
【28975】Re:コンボボックスについて Statis 05/9/20(火) 10:46 回答[未読]
【29605】Re:コンボボックスについて Mik 05/10/9(日) 10:08 発言[未読]

【28958】コンボボックスについて
質問  tbtk  - 05/9/19(月) 16:32 -

引用なし
パスワード
   すいません、お聞きします。
コンボボックスをワークシート上に配置して
複数あるユーザーフォームをコンボボックスの中のリストから呼び出して
表示させたいのですが、どのようにしたらよろしいのでしょうか?
表示させる際、出来ればコマンドボタンもワークシート上に配置して
クリックして確定して表示という形にしたいです。
ご教示いただけると幸いです。よろしくお願いします。

【28963】Re:コンボボックスについて
発言  ichinose  - 05/9/19(月) 19:35 -

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

>すいません、お聞きします。
>コンボボックスをワークシート上に配置して
>複数あるユーザーフォームをコンボボックスの中のリストから呼び出して
>表示させたいのですが、どのようにしたらよろしいのでしょうか?
>表示させる際、出来ればコマンドボタンもワークシート上に配置して
>クリックして確定して表示という形にしたいです。
>ご教示いただけると幸いです。よろしくお願いします。

例えば、Userform1というユーザーフォームを表示させるには

Sub test()
  Dim frm As String
  frm = "userform1"
  UserForms.Add(frm).Show
End Sub

なんてすると、文字列で指定されたユーザーフォームを表示できます。

これを使えば、なさりたい事が出来ると思います。

Excelにはシート上に配置できるコンボボックスが2種類あります。

コマンドバー「フォーム」にあるコンボボックスと
コマンドバー「コントロールツールボックス」にあるコンボボックス。

この辺りの記述がないので全部のコード例は投稿しませんが、
まっ、ここがキーポイントかと思います。

【28970】Re:コンボボックスについて
発言  ichinose  - 05/9/20(火) 7:52 -

引用なし
パスワード
   おはようございます。

>Sub test()
>  Dim frm As String
>  frm = "userform1"
>  UserForms.Add(frm).Show
>End Sub

の情報元は

[#18804]

です。
倉庫(過去ログ)のほうに行ってしまったかと思いましたが、
ありました。

【28971】Re:コンボボックスについて
お礼  tbtk  - 05/9/20(火) 8:29 -

引用なし
パスワード
   すみません、ありがとうございます。
また、そちらを参考にしながらやってみます。
ありがとうございました。

【28973】Re:コンボボックスについて
質問  tbtk  - 05/9/20(火) 9:43 -

引用なし
パスワード
   すいません。色々試してみたのですが、出来ません。
コンボボックスはコントロールツールボックスから配置をしております。
また、ご教示いただけると幸いです。

【28974】Re:コンボボックスについて
発言  Statis  - 05/9/20(火) 10:37 -

引用なし
パスワード
   ▼tbtk さん:
>すいません。色々試してみたのですが、出来ません。
>コンボボックスはコントロールツールボックスから配置をしております。
>また、ご教示いただけると幸いです。

こんにちは。
試されたコードをUpしてどのように上手く行かなかったのでしょうか?

【28975】Re:コンボボックスについて
回答  Statis  - 05/9/20(火) 10:46 -

引用なし
パスワード
   こんにちは
コンボボックスに値が設定さているとして

コマンドボタンのイベントに記載

Private Sub CommandButton1_Click()
On Error GoTo End_Len
UserForms.Add(Me.ComboBox1.Value).Show
On Error GoTo 0
End_Len:
End Sub

【28976】Re:コンボボックスについて
発言  tbtk  - 05/9/20(火) 10:57 -

引用なし
パスワード
   提示していただいたコードを記述してみたのですがどう動いているのかよく分からず
断念した形です。すいません、書籍なども見ているのですがどうしても分からないので
もう一度、ご教示いただきたいと思います。
Private Sub test()
Dim frm1 As String
Dim frm2 As String
Dim frm3 As String
Dim frm4 As String
Dim frm5 As String
Dim frm6 As String
Dim frm7 As String

  
  frm1 = "December2005"
  frm2 = "February2006"
  frm3 = "January2006"
  frm4 = "March2006"
  frm5 = "November2005"
  frm6 = "October2005"
  frm7 = "September2005"
  
  ComboBox1.AddItem (frm1)
  ComboBox1.AddItem (frm2)
  ComboBox1.AddItem (frm3)
  ComboBox1.AddItem (frm4)
  ComboBox1.AddItem (frm5)
  ComboBox1.AddItem (frm6)
  ComboBox1.AddItem (frm7)

  
End Sub
今は上記のコードをコンボボックスに記述してあります。
これでコンボボックスの中には文字列として出てきたのですが
選択した文字列をワークシート上に配置してあるコマンドボタンを押して
確定し、選択した文字列のユーザーフォームを表示するという
コードが分かりません。
frm1〜frm7に入っているのは表示させたいユーザーフォームのオブジェクト名です。
ワークシート上にはコントロールツールボックスから配置した、コンボボックスと
コマンドボタンが一つずつ配置してあります。

【28977】Re:コンボボックスについて
回答  Statis  - 05/9/20(火) 11:08 -

引用なし
パスワード
   こんにちは

下記のコードを「ThisWorkbook」のモジュールに記載
(ファイルOp時にコンボボックスに値を設定します)
該当シート名は「Sheet1」としています。

Private Sub Workbook_Open()

Dim frm(6) As String, i As Long
 
  frm(0) = "December2005"
  frm(1) = "February2006"
  frm(2) = "January2006"
  frm(3) = "March2006"
  frm(4) = "November2005"
  frm(5) = "October2005"
  frm(6) = "September2005"
  For i = 0 To 6
   Worksheets("Sheet1").ComboBox1.AddItem (frm(i))
  Next i
 
End Sub

下記のコードをSheet1(コンボボックスとコマンドボタンがあるシート)の
シートモジュールに記載

Private Sub CommandButton1_Click()

On Error GoTo End_Len
UserForms.Add(Me.ComboBox1.Value).Show
On Error GoTo 0
End_Len:

End Sub

【28978】Re:コンボボックスについて
お礼  tbtk  - 05/9/20(火) 11:17 -

引用なし
パスワード
   ありがとうございました。
希望通りの動きが実現できました。
お手数おかけいたしましたが、またお世話になることもあると
思いますのでこれからもよろしくお願いします。

【29605】Re:コンボボックスについて
発言  Mik  - 05/10/9(日) 10:08 -

引用なし
パスワード
   ▼Statis さん:

一寸通りすがりで、見させていただいていたのですが・・・
こんな事ではいけませんでしょうか?

コントロールツールボックスからコンボボックスを作り
Thisworkbookに下のコードを書くだけでいけるんでは??無いでしょうか。

Private Sub Workbook_Open()
Dim frm(6) As String, i As Long
 
  frm(0) = "December2005"
  frm(1) = "February2006"
  frm(2) = "January2006"
  frm(3) = "March2006"
  frm(4) = "November2005"
  frm(5) = "October2005"
  frm(6) = "September2005"
  For i = 0 To 6
   Worksheets("Sheet1").ComboBox1.AddItem (frm(i))
  Next i
 
End Sub

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