Excel VBA質問箱 IV

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

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


1708 / 13646 ツリー ←次へ | 前へ→

【72474】Rowsourceで範囲を列にする方法 Aoichi 12/8/14(火) 11:23 質問[未読]
【72477】Re:Rowsourceで範囲を列にする方法 UO3 12/8/14(火) 14:53 発言[未読]
【72479】Re:Rowsourceで範囲を列にする方法 Aoichi 12/8/14(火) 16:20 質問[未読]
【72480】Re:Rowsourceで範囲を列にする方法 UO3 12/8/14(火) 16:39 発言[未読]
【72482】Re:Rowsourceで範囲を列にする方法 Aoichi 12/8/15(水) 15:19 質問[未読]
【72483】Re:Rowsourceで範囲を列にする方法 Aoichi 12/8/15(水) 15:29 お礼[未読]
【72478】Re:Rowsourceで範囲を列にする方法 Yuki 12/8/14(火) 15:03 発言[未読]

【72474】Rowsourceで範囲を列にする方法
質問  Aoichi  - 12/8/14(火) 11:23 -

引用なし
パスワード
   お世話になります
CombBoxで範囲を列にして表示したいのですが
うまくいきません
Private Sub UserForm_Initialize()
   Dim sht As Worksheet  
   Set sht = Workbooks("A1Book.xls").Worksheets("項目")
   sht.Activate
   UserForm.ComboBox項目.RowSource = "項目!A2:AY2"
  ’ A2からAY2の値を表示したいのです
  ’ ComboBox項目にA2の値しか表示しません
  
  ' UserForm.ComboBox項目.RowSource = "項目!A2:A55"
  ’行を範囲すると全て表示できます
End Sub

よろしくお願いいたします

【72477】Re:Rowsourceで範囲を列にする方法
発言  UO3  - 12/8/14(火) 14:53 -

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

ご存知でしょうけど、コンボボックスやリストボックスのリストには「複数列」のリストを
与えることができますね。

で、"項目!A2:AY2" これは、「1行51列」の配列です。つまり「1行」です。
このままのコードで、プロパティのColumnCountを 51 にしますと、横に 51項目の
コンボボックスが表示されるはずです。

でも、おやりになりたいのは、そういうことではないのですよね。

RowSourceを与えるのではなく、Listに直接配列を与えましょう。

Me.ComboBox項目.List = WorksheetFunction.Transpose(sht.Range("A2:AY2").Value)

【72478】Re:Rowsourceで範囲を列にする方法
発言  Yuki  - 12/8/14(火) 15:03 -

引用なし
パスワード
   ▼Aoichi さん:
>CombBoxで範囲を列にして表示したいのですが
>うまくいきません
>Private Sub UserForm_Initialize()
>   Dim sht As Worksheet  
>   Set sht = Workbooks("A1Book.xls").Worksheets("項目")
>   sht.Activate
>   UserForm.ComboBox項目.RowSource = "項目!A2:AY2"
>  ’ A2からAY2の値を表示したいのです
>  ’ ComboBox項目にA2の値しか表示しません
>  
>  ' UserForm.ComboBox項目.RowSource = "項目!A2:A55"
>  ’行を範囲すると全て表示できます
>End Sub
>
With Me.ComboBox1
  .Column() = Range("A2:AY2").Value
End With
とかにしましょう。
シート名は省いていますよ。

【72479】Re:Rowsourceで範囲を列にする方法
質問  Aoichi  - 12/8/14(火) 16:20 -

引用なし
パスワード
   ▼UO3 さん:
有難うございます
Me.ComboBox項目.List = WorksheetFunction.Transposesht.Range"A2:AY2").Value)
これを実行しましたが
UserFormを開いた時点で ”書込できません”の
エラーになりました

【72480】Re:Rowsourceで範囲を列にする方法
発言  UO3  - 12/8/14(火) 16:39 -

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

プロパティでRowSOurceが指定してあるか、あるいは、このコードの実行の前に
マクロ内で RowSource を指定していると、そうなります。
プロパティで設定しているなら、それは空白にしておいてください

あるいは・・・

アップしたコードは

Me.ComboBox項目.List = WorksheetFunction.Transpose(sht.Range("A2:AY2").Value)

です。

Me.ComboBox項目.List = WorksheetFunction.Transposesht.Range"A2:AY2").Value)

ではありませんけど?

【72482】Re:Rowsourceで範囲を列にする方法
質問  Aoichi  - 12/8/15(水) 15:19 -

引用なし
パスワード
   ▼UO3 さん:
 お手数をおかけします
 以下のようにして実行しました
 ”書込出来ません”のエラーになりました
 よろしくお願いいたします

  Private Sub UserForm_Initialize()
   Dim sht As Worksheet  
   Set sht = Workbooks("A1Book.xls").Worksheets("項目")
   sht.Activate
   Me.ComboBox項目.List = WorksheetFunction.Transpose(sht.Range("A2:AY2").Value)
  End Sub

【72483】Re:Rowsourceで範囲を列にする方法
お礼  Aoichi  - 12/8/15(水) 15:29 -

引用なし
パスワード
   ▼UO3 さん yukiさん:
有難うございました
UO3 さんの言われたとうりで プロパティウインドウ
にあるRowsourceを空白にしていませんでした
うまくいきました
お手数をおかけしました
助かりました

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