[[20050817100643]] 『フォームのコンボボックスのRowsourceプロパティax(なた) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『フォームのコンボボックスのRowsourceプロパティを』(なた)

[ユーザーフォーム上のコンボボックスのRowsourceプロパティを設定したい]

 いつもお世話になってます!

 過去ログなどで、一つ目のコンボボックスの内容に応じて二つ目のコンボボックスの
Rowsourceプロパティを変化させる方法があったのですが、一つ目の選択数が130程あるので
過去ログのSelect Caseを使うのは難しいのでなんとかしたくてやってるのですが、なかなか
できません。(表の位置も変わる(追加等)可能性があるのでA1形式の"V"などで設定したくないのです)

 考え方としては、一個目の選択に応じて、二個目のコンボボックスのRowsourceプロパティの
列を自動変化させたいのです。

 コードはこんな感じなのですが、

 Private Sub combobox1_Change()

 '絞込_選択絞込_コンボボックス1チェンジ

 Dim mCOL As Integer
 Dim mROW As Long
 Dim mSTR0 As String
 Dim mSOURCE As String

 mCOL = 1
 mROW = 4
 mSTR0 = ComboBox1.Text

 Do Until Cells(4, mCOL) = mSTR0 Or Cells(4, mCOL) = "end"    ←一つ目の選択に応じた列をみつける
     mCOL = mCOL + 1
 Loop

 If Cells(4, mCOL) = "end" Then
     MsgBox ("指定された[ " & mSTR0 & " ]は存在しないか、変更されています。")
     Exit Sub
 End If

 mROW = Cells(65535, mCOL).End(xlUp).Row            ←一番下の行をみつける

 mSOURCE = Range(Cells(2, mCOL), Cells(mROW, mCOL))      ←見つけた列の2〜最後の行までを変数に入れたい
 UserForm1.ComboBox2.RowSource = "入力!" & mSOURCE       ←変数を使ってプロパティ設定したい

 End Sub

 実行するとCombobox2のRowsourceプロパティの設定の行で"型が一致しません"とエラーになってしまいます

 どこがいけないのでしょうか?お教えください><

 Win2000 Excel2000 です


 ↓これも実行されてますか?この時点でエラーが出るはずですけどね。
mSOURCE = Range(Cells(2, mCOL), Cells(mROW, mCOL))
この一行ではRange(Cells(2, mCOL), Cells(mROW, mCOL))のどのプロパティを
mSOURCEに代入するのか明示的に指定していないのでRangeプロパティを代入しようとしますが、
変数mSOURCEは文字列型の宣言を行っているので代入できません。
もちろんその後のRouSourceも設定できません。
mSOURCE = Range(Cells(2, mCOL), Cells(mROW, mCOL)).Address
(みやほりん)


 お邪魔します。せっかく書いたので・・・
Option Explicit
Private Sub ComboBox1_Change()
'絞込_選択絞込_コンボボックス1チェンジ
Dim mROW As Long
Dim mSTR0 As String
Dim x As Variant
mSTR0 = Me.ComboBox1.Text
With ActiveSheet
    x = Application.Match(mSTR0, .Rows(4), 0) '←一つ目の選択に応じた列をみつける
    If Not IsError(x) Then
        mROW = .Cells(65535, x).End(xlUp).Row '←一番下の行をみつける
        '←変数を使ってプロパティ設定したい
        Me.ComboBox2.List = .Range(.Cells(2, x), .Cells(mROW, x)).Value   '←見つけた列の2〜最後の行までを変数に入れたい
    Else
        MsgBox "指定された[ " & mSTR0 & " ]は存在しないか、変更されています。"
    End If
End With
End Sub
(SoulMan)


 そーいえば、Stringが悪いのかと思って、Variantに変更してた気がします。

 .Address 追加で出来ました!ありがとうございます。
色々な方法があるのですね。毎回勉強になります。
ありがとうございます!(^^)
みやほりん様、SoulManさま
(なた)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.