|
2020/08/21(Fri) 12:09:02 編集(投稿者)
■No95588 (あい さん) に返信 > 分類:[.NET 全般] > VBAでコンボボックスをテキストボックス連動させたいです。 .NET 全般…というのは、投稿分類の選択ミスでしょうか。 VBA というのは、Excel VBA のことですね?
> ユーザーフォームは使用していません。 > シートにコンボボックスとテキストボックスx3つあります。 ここでいうシートというのは、Worksheet を差しているという前提で書きます。 (相手が DialogSheet だとすると、貼り付けられるコントロールが変わってきます)
また、ユーザーフォームは使用していないけれども、 ユーザーフォーム用のコンボボックスをお使いなのでしょうか。
ワークシートに貼れるオブジェクトとしては、 [挿入]リボン - [図形] の テキスト ボックスや [開発]リボン - [挿入] の「フォーム コントロール」、「ActiveX コントロール」と 複数の種類があり、それぞれ使い方が異なります。
Dim t1 As Excel.TextBox Set t1 = Sheet1.TextBoxes("テキスト ボックス 1")
Dim c1 As Excel.DropDown Set c1 = Sheet2.DropDowns("ドロップ 1")
Dim t2 As MSForms.TextBox Set t2 = Sheet1.OLEObjects("TextBox2").Object
Dim c2 As MSForms.ComboBox Set c2 = Sheet1.OLEObjects("ComboBox2").Object
> シート1 > A3 B3 C3 > Test1 AA 01 > Test2 BB 02 > だとします。
どういう状態なのか読み取れなかったのですが、 下記のいずれかに当てはまりますか?
【A案】 Sheet1.Range("A3").Value = "Test1" & vbLf & "Test2" Sheet1.Range("B3").Value = "AA" & vbLf & "BB" Sheet1.Range("C3").Value = "01" & vbLf & "02"
【B案】 Sheet1.Range("A1:C1").Value = Array("A3", "B3", "C3") Sheet1.Range("A2:C2").Value = Array("Test1", "AA", "01") Sheet1.Range("A3:C3").Value = Array("Test2", "BB", "02")
【C案】 Dim C As Long, R As Range, D As DropDown For C = 1 To 3 Set R = ActiveSheet.Cells(1, C) Set D = R.Worksheet.DropDowns.Add(R.Left, R.Top, R.Width, R.Height) D.Name = Array(, "A3", "B3", "C3")(C) D.AddItem Array(, "Test1", "AA", "01")(C) D.AddItem Array(, "Test2", "BB", "02")(C) D.Selected(1) = True Next
> Private Sub ComboBox1_Change() > TextBox1.Value = ComboBox1 > End Sub Value プロパティということは、ActveX コントロールでしょうか?
Value プロパティに代入しようとしているのが、 コンボボックス上で選択されている「文字列」や「項目番号」などではなく、 「コンボボックスそのもの」になっていますが、それで良いのですか?
> コンボボックスで動かしたいんです。
コンボボックス内の一覧を入れ替えたい、という話なのか、 コンボボックス内の項目が選択された状態にしたい、という話なのか コンボボックスの選択状態に応じてテキストボックスの内容を差し替えたいのか 質問の意味を読み解けませんでした。読解力不足で済みません…。
|