推しミネラルウォーターはありますか?

初めて質問します。

コンボボックスから選択した値によって、
セルに値を入力する方法を教えて下さい。

コンボボックスの値は、1、2、3。
1を選択した時には、A1にA、
2を選択した時には、A2にB、
3を選択した時には、A3にCを入力する。

といったかんじにしたいです。
本やネットなど色々調べてみたのですが、わかりませんでした。
初歩的な質問かもしれませんが、どなたか教えて下さい。
よろしくお願いします。

A 回答 (2件)

Sheet1にコンボボックスを1つ貼り付ける。


そのプロパtィのListFillRangeをたとえばI1:I3にし、I1に1、I2に2、I3に3を入れる。
Combobox1をダブルクリックして出てくるところの
Combobox1のchangeイベントに
Private Sub ComboBox1_Change()
Range(Cells(1, 1), Cells(3, 1)) = ""
If ComboBox1.Value = 1 Then Cells(1, 1) = "A"
If ComboBox1.Value = 2 Then Cells(2, 1) = "B"
If ComboBox1.Value = 3 Then Cells(3, 1) = "C"
End Sub
デザインモードを脱する。
これでコンボボックスの値を選ぶと
A1kaA2かA3に値をセットし、今までの他の選択値は消える。
Case文で分けても良いと思う。
    • good
    • 0
この回答へのお礼

うまくいきました。
悩んでたのがすっきりしました。
ありがとうございました!

お礼日時:2005/10/10 23:45

こんにちは。



私の方法は、ちょっとむつかしいかもしれませんね。慣れていれば簡単なことですが、ネットでは、そのような説明は出てきませんね。

ComboBox の値は、元々配列構造になっていますから、配列にして、Listで渡してしまえばよいです。その配列を作る方法をどうするか、ということになってしまいますね。

ワークシートから起こして、ListFillRange で、ComboBox に渡してももよいかとは思います。ただ、ListFillRangeに書き込むなら、私の"NewComboValue"とThisWorkbookのOpenプロシージャは不要です。

私個人は、ComboBoxは、なるべくワークシートからのデータをインポートしません。万が一に失ったり改編されたりすることがあるからです。

'--------------------------------------
'<シートモジュールモジュール>
Sub NewComboValues()
'ListFillRangeに入れる場合は不要
Dim myList(2, 1) As Variant
 ComboBox1.Clear
 myList(0, 0) = 1: myList(0, 1) = "A"
 myList(1, 0) = 2: myList(1, 1) = "B"
 myList(2, 0) = 3: myList(2, 1) = "C"
 ComboBox1.List = myList
End Sub

Private Sub ComboBox1_Click()
'クリックで入力
With ComboBox1
 Range("A" & .List(.ListIndex, 0)).Value = .List(.ListIndex, 1)
End With
End Sub

'--------------------------------------
'<ThisWorkbook>
'ListFillRangeに入れる場合は不要
Private Sub Workbook_Open()
 'Sheet1モジュールにある場合
 Call Sheet1.NewComboValues
End Sub
    • good
    • 0
この回答へのお礼

初心者なもので手間取りましたが、なんとかうまくいきました。
ワークシートからインポートすることしか頭になかったので、参考になりました。
丁寧に回答していただき、ありがとうございました。

お礼日時:2005/10/11 00:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!