アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロ初心者です。
教えてください。

コンボボックスで、[▼]をクリックすると、
[りんご]、[いちご]、[みかん]のリストが表示されます。
しかし、もう一度、[▼]をクリックするとリストの数が増えています。
[りんご]、[いちご]、[みかん]、[りんご]、[いちご]、[みかん]、[りんご]、[いちご]、[みかん]

全くの初心者なので、どうすればいいかわかりません。

コンボボックスで、[▼]をクリックすると、
[りんご]、[いちご]、[みかん]のリストのみが常に表示されるようにしたいです。

下記がコードです。

----------------------------------------
Private Sub 種類_Combo_DropButtonClick()
'** データセット
種類_Combo.AddItem "りんご"
種類_Combo.AddItem "いちご"
種類_Combo.AddItem "みかん"
End Sub

----------------------------------------

よろしくお願いします。

A 回答 (4件)

そのコンボボックスは、VBAのフォームに置かれているのでしょうか?


それともシートに直接置かれているのでしょうか?

もしフォームに置いているのであれば、フォームの
Initializeイベントで、No.2の方のコードを書きます。
で、コンボボックスのDropButtonClickイベントは消します。
Initializeの時点ではClearはいらなくて質問者様のコードのままでもいいと思いますが、私なら書きますね。
Private Sub UserForm_Initialize()
'** データセット
種類_Combo.Clear '← この行を追加するだけ
種類_Combo.AddItem "りんご"
種類_Combo.AddItem "いちご"
種類_Combo.AddItem "みかん"
End Sub

シートに直接貼り付けた場合は・・・。
どのタイミングでやればいいんでしょうね。
WorkBookのOpenイベント?かな?その場合は分からないです。
Auto_Openかなぁ。うぅ~ん。
    • good
    • 0
この回答へのお礼

ありがとうございました。
↑のコードに修正したら、できました~。

お礼日時:2006/06/12 15:17

AddItemは今あるコンボの項目のリストの後に項目を追加する(Add)ものです。


だから、Clickイベントの中に入れると、クリックするごとに累積されていきます。
始まって以来1回かぎりしか実行されないルーチンの、今後の項目選択が始まるまでのルーチンに入れないとなりません。
UserForm_Initializeルーチンなどが良いでしょう。
    • good
    • 0

こんな感じにしてみては?



---
Private Sub 種類_Combo_DropButtonClick()
'** データセット
種類_Combo.Clear '← この行を追加するだけ
種類_Combo.AddItem "りんご"
種類_Combo.AddItem "いちご"
種類_Combo.AddItem "みかん"
End Sub
    • good
    • 0

「additem」というのは「追加しなさいよ~」という命令なので、


プログラムを日本語に置き換えて言いますと・・・

「種類」というコンボボックスを押したら、「種類」コンボボックスのリストに
「りんご」「いちご」「みかん」を追加しなさいよ~。ということです。

「Combo_DropButtonClick」という命令が良くないのかもしれませんので、
コマンドボタンを押したときにその命令を与えてやって、「Combo_DropButtonClick」
は削除してはいかがでしょうか?
    • good
    • 1

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