Excel VBA質問箱 IV

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

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


2698 / 13645 ツリー ←次へ | 前へ→

【66490】ComboBoxを連続的に代入したい。 lenient 10/9/6(月) 15:44 質問[未読]
【66491】Re:ComboBoxを連続的に代入したい。 Yuki 10/9/6(月) 16:10 発言[未読]
【66521】Re:ComboBoxを連続的に代入したい。 Jaka 10/9/8(水) 14:21 発言[未読]
【66522】Re:ComboBoxを連続的に代入したい。 lenient 10/9/8(水) 16:01 お礼[未読]

【66490】ComboBoxを連続的に代入したい。
質問  lenient  - 10/9/6(月) 15:44 -

引用なし
パスワード
   はじめまして。

コンボボックスに入力された値を変数に代入したいのですが上手くいかずに悩んでおります。
簡単に書くと以下のような感じにしたいのですがどのようにすると実現することができるのでしょうか。

Public CB( 1 to 10 ) As String
Private Sub コンボボックス宣言()
  For i = 1 To 10
    CB(i) = ComboBox & i
  Next
End Sub

この文を動かす前にはユーザフォームでコンボボックスに値が入っています。
よろしくお願いいたします。

【66491】Re:ComboBoxを連続的に代入したい。
発言  Yuki  - 10/9/6(月) 16:10 -

引用なし
パスワード
   ▼lenient さん:
>はじめまして。
>
>コンボボックスに入力された値を変数に代入したいのですが上手くいかずに悩んでおります。
>簡単に書くと以下のような感じにしたいのですがどのようにすると実現することができるのでしょうか。

新しいブックで
UserForm1に
ComboBoxを1個
CommandButtonを2個
貼り付けて
下記コードをコピペして
実行してみて下さい。

Option Explicit
Private CB() As String

Private Sub CommandButton1_Click()
  Dim v  As Variant
  
  v = Me.ComboBox1.List
  
  Range("J1").Resize(UBound(v) + 1).Value = v
End Sub

Private Sub CommandButton2_Click()
  Dim i  As Long
  
  With Me.ComboBox1
    ReDim CB(1 To .ListCount, 0)
    For i = 1 To UBound(CB)
      CB(i, 0) = .List(i - 1, 0)
    Next
  End With
  Range("K1").Resize(UBound(CB)).Value = CB
End Sub

Private Sub UserForm_Initialize()
  Dim i  As Long
  
  For i = 1 To 20
    Me.ComboBox1.AddItem "AA" & i
  Next
End Sub

【66521】Re:ComboBoxを連続的に代入したい。
発言  Jaka  - 10/9/8(水) 14:21 -

引用なし
パスワード
   Public宣言しているから、標準モジュールに書いたシート上のコンボボックスだと
思いますが、コンボボックスの種類がわかりません。

参考
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=157;id=FAQ

【66522】Re:ComboBoxを連続的に代入したい。
お礼  lenient  - 10/9/8(水) 16:01 -

引用なし
パスワード
   ご回答ありがとうございます。
以下の方法でさくっとできました。  

Public CB(1 to 11)

For i = 1 To 11
  CB(i) = Controls("ComboBox" & i)
Next

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