[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォームのコンボボックスの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.