Excel VBA質問箱 IV

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

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


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

【23660】オートフィルタ後にコンボボックスに表示 たかし 05/4/1(金) 15:41 質問[未読]
【23663】Re:オートフィルタ後にコンボボックスに表示 G-Luck 05/4/1(金) 16:03 発言[未読]
【23665】Re:オートフィルタ後にコンボボックスに表示 たかし 05/4/1(金) 16:27 質問[未読]
【23666】Re:オートフィルタ後にコンボボックスに表示 G-Luck 05/4/1(金) 16:34 発言[未読]
【23668】Re:オートフィルタ後にコンボボックスに表示 たかし 05/4/1(金) 16:51 質問[未読]
【23669】Re:オートフィルタ後にコンボボックスに表示 G-Luck 05/4/1(金) 16:55 発言[未読]
【23674】Re:オートフィルタ後にコンボボックスに表示 たかし 05/4/1(金) 17:08 質問[未読]
【23678】Re:オートフィルタ後にコンボボックスに表示 G-Luck 05/4/1(金) 17:17 発言[未読]
【23679】Re:オートフィルタ後にコンボボックスに表示 たかし 05/4/1(金) 17:25 お礼[未読]

【23660】オートフィルタ後にコンボボックスに表示
質問  たかし E-MAIL  - 05/4/1(金) 15:41 -

引用なし
パスワード
   いつもお世話になってます。
コンボボックス1で選択したデータでシート"aaa"のB2セルでオートフィルタをかけ
コンボボックス2にオートフィルター後のC列のデータがある部分のみ表示させようと
VBAを作ってみました。
しかし、オートフィルター後のデータが1行しかない場合、エラーが出てしまいます。
アドバイスいただけないでしょうか?
宜しくお願い致します。

Private Sub ComboBox1_click()
 Dim CT2 As Range
 Worksheets("aaa").AutoFilterMode = False
 LtW = ComboBox1.List(ComboBox1.ListIndex)
  Worksheets("aaa").Range("B1").AutoFilter Field:=2, Criteria1:=LtW
 E = Worksheets("aaa").Range("C65536").End(xlUp).Row
  Set CT2 = Worksheets("aaa").Range("C2:C" & E).SpecialCells_
       (xlCellTypeVisible)
  ComboBox2.List = CT2.Value
End Sub

【23663】Re:オートフィルタ後にコンボボックスに...
発言  G-Luck  - 05/4/1(金) 16:03 -

引用なし
パスワード
   ▼たかし さん:
>Private Sub ComboBox1_click()
> Dim CT2 As Range
  Dim myList as Variant
> Worksheets("aaa").AutoFilterMode = False
> LtW = ComboBox1.List(ComboBox1.ListIndex)
>  Worksheets("aaa").Range("B1").AutoFilter Field:=2, Criteria1:=LtW
> E = Worksheets("aaa").Range("C65536").End(xlUp).Row
>  Set CT2 = Worksheets("aaa").Range("C2:C" & E).SpecialCells_
>       (xlCellTypeVisible)
  myList = CT2.Value
  If IsArray(myList) = False Then
    myList = Array(myList)
  End If
'  ComboBox2.List = CT2.Value
  ComboBox2.List = myList

>End Sub

Listに、配列を代入する必要があるようです。
RangeのValueは、セルが一つの場合は値のみを返しますので、
If 以下で強制的に、配列にしてみました。

【23665】Re:オートフィルタ後にコンボボックスに...
質問  たかし E-MAIL  - 05/4/1(金) 16:27 -

引用なし
パスワード
   ▼G-Luck さん:
うまくいきました。ありがとう御座います。
また、早速の解答ありがとう御座いました。

また、もう1つ質問があるのですが、
2つ以上のTextBoxに入力された文字列をスペースを空けて1つのセルに
書き込みたいのですが、いい方法は無いでしょうか?
また、スペースではなく、"Textbox1の文字列"(内線"Textbox2の文字列")
のように、"(内線"と、")"を途中にいれたりすることは出来ないでしょうか?

何度も申し訳ありませんが、いい方法があれば教えて下さい。
宜しくお願い致します。

【23666】Re:オートフィルタ後にコンボボックスに...
発言  G-Luck  - 05/4/1(金) 16:34 -

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

Range("A1") = TextBox1.Value & " " & TextBox2.Value

とか?

【23668】Re:オートフィルタ後にコンボボックスに...
質問  たかし E-MAIL  - 05/4/1(金) 16:51 -

引用なし
パスワード
   ▼G-Luck さん:
>Range("A1") = TextBox1.Value & " " & TextBox2.Value
だと、『" "』の部分でエラーが発生してしまいます。
コンパイルエラー
補修候補:ステートメントの最後
といったコメントが出ます。

1度シートの任意のセルにそれぞれ貼り付けて、A1セルに数式を入れるしか
ないのでしょうか?

【23669】Re:オートフィルタ後にコンボボックスに...
発言  G-Luck  - 05/4/1(金) 16:55 -

引用なし
パスワード
   ▼たかし さん:
他に問題があるように思います。
テキストボックスはユーザーフォーム上ですか?
シート上ですか?
実行はどのタイミングでしていますか?
コードはどこに書いていますか?

【23674】Re:オートフィルタ後にコンボボックスに...
質問  たかし E-MAIL  - 05/4/1(金) 17:08 -

引用なし
パスワード
   ▼G-Luck さん:

>他に問題があるように思います。
>テキストボックスはユーザーフォーム上ですか?

USERFORM上です。

>実行はどのタイミングでしていますか?
>コードはどこに書いていますか?

TEXTBOXに入力後、Commandbuttonで実行しています。
コードは、Commandbutton_Clickに書いています。

ちなみに、Commandbutton_Clickにコードを入力し、改行するとコンパイルエラー
になります。

【23678】Re:オートフィルタ後にコンボボックスに...
発言  G-Luck  - 05/4/1(金) 17:17 -

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

& の前後にスペースは入っていますか?
入っていない場合、演算子を認識されないので、エラーが出ます。

【23679】Re:オートフィルタ後にコンボボックスに...
お礼  たかし E-MAIL  - 05/4/1(金) 17:25 -

引用なし
パスワード
   ▼G-Luck さん:
いれてませんでした。
かってにスペースを入れてくれるものと思っていました。

ありがとう御座いました。

>▼たかし さん:
>
> & の前後にスペースは入っていますか?
>入っていない場合、演算子を認識されないので、エラーが出ます。

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