C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

コンボボックスでテキストボックス連動したい。

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■95588 / inTopicNo.1)  コンボボックスでテキストボックス連動したい。
  
□投稿者/ あい (38回)-(2020/08/21(Fri) 00:09:50)

分類:[Microsoft Office 全般] 

2020/08/21(Fri) 20:04:47 編集(投稿者)
VBAでコンボボックスをテキストボックス連動させたいです。

ユーザーフォームは使用していません。

シートにコンボボックスとテキストボックスx3つあります。

シート1
A3 B3 C3
Test1 AA    01
Test2 BB    02

だとします。

シート2にコンボボックスとテキストボックスx3つ作っています。
コンボボックス1で選択された時シートA3 B3 C3とテキストボックス3つ連動させたいんです。


Private Sub ComboBox1_Change()
TextBox1.Value = ComboBox1
End Sub

テキストボックス1が連動されます。
TextBox1.Value = ComboBox1
TextBox2.Value = ComboBox1
TextBox3.Value = ComboBox1

テキストボックス1=A3
テキストボックス2=B3
テキストボックス3=C3
コンボボックスで動かしたいんです。

どのようにしたらいいのか教えてください。

引用返信 編集キー/
■95589 / inTopicNo.2)  Re[1]: コンボボックスでテキストボックス連動したい。
□投稿者/ 魔界の仮面弁士 (2819回)-(2020/08/21(Fri) 12:04:59)
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 プロパティに代入しようとしているのが、
コンボボックス上で選択されている「文字列」や「項目番号」などではなく、
「コンボボックスそのもの」になっていますが、それで良いのですか?



> コンボボックスで動かしたいんです。

コンボボックス内の一覧を入れ替えたい、という話なのか、
コンボボックス内の項目が選択された状態にしたい、という話なのか
コンボボックスの選択状態に応じてテキストボックスの内容を差し替えたいのか
質問の意味を読み解けませんでした。読解力不足で済みません…。
引用返信 編集キー/
■95592 / inTopicNo.3)  Re[2]: コンボボックスでテキストボックス連動したい。
□投稿者/ あい (39回)-(2020/08/21(Fri) 19:08:49)
2020/08/22(Sat) 12:30:35 編集(投稿者)
>魔界の仮面弁士 さん


返事ありがとうございます。

コードを確認しましたが、A案、B案、C案をやった所、
予想通りにはできませんでした。

やりたい事
・ワークシート1にTextbox1、Textbox2、TextBox3(ActiveX コントロール)
Combobox1をワークシート1に挿入済み

以下の図形

Combobox1
1
2
3

指定範囲(Textbox1)
C1=Test1
C2=Text2
C3=Test3

指定範囲(Textbox2)
D1=AA
D2=BB
D3=CCC

となるようにワークシート1から実行したいです。

試した事

Option Explicit

Private Sub ComboBox1_Change()
'コンボボックス選択された時テキストボックス1〜3が連動
TextBox1.Value = ComboBox1
TextBox2.Value = ComboBox1
TextBox3.Value = ComboBox1

End Sub


Private Sub TextBox1_Change()

'ワークシート1のセル範囲をC1

ComboBox1.Value = Range("C1").Value

End Sub

この場合は、セルC1、1個だけになりますが、複数選択範囲だと

Private Sub TextBox1_Change()

’型が一致しません〜エラー
'ComboBox1.Value = Range("$C$1:$C$2")'←


End Sub
----------------------

コード


'sheet1
Option Explicit
Private Sub UserForm_Initialize()
With ComboBox1
.AddItem "1"
.AddItem "2"
.AddItem "3"
End With

End Sub

Private Sub TextBox1_Change()
 ComboBox1.Value = Range("$C$1")'セル範囲C1〜C3

End Sub

Private Sub TextBox2_Change()
ComboBox1.Value = Range("$D$1")'セル範囲D1〜C3
End Sub

Private Sub TextBox3_Change()
ComboBox1.Value = Range("$E$1")'セル範囲E1〜E3

end sub

以下のコードです。

教えてほしい事

いろいろ試してみましたが、("$C$1:$C$2".?
?の部分をどうすればテキストボックス1〜3を連動出来るんでしょうか?

開発環境 Excel VBAです。



引用返信 編集キー/
■95597 / inTopicNo.4)  Re[3]: コンボボックスでテキストボックス連動したい。
□投稿者/ あい (40回)-(2020/08/23(Sun) 20:58:57)
解決済み
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ