Excelのワークシートでコンボボックスを設定する方法を教えてください。
「フォームコントロール」と「ActiveXコントロール」の違いがわかりません。
添付の画像の通りコンボボックスに西暦を入力(別シートに入力済みの値を表示するように設定)してあるのですが、ファイルを保存しているにも関わらず、再度ファイルを開くとコンボボックスの中のリストは空欄になってしまいます。
今は「ActiveXコントロール」のコンボボックスで設定しています。
コードは以下のように設定してみたのですが、設定内容や設定箇所が違うのでしょうか?
//////////////////////////////////////////////////////
Private Sub ComboBox1_DropButtonClick()
Dim sh As Worksheet
Set sh = Worksheets("マクロ")
Dim i As Integer
Dim lastRow As Integer
lastRow = sh.Cells(Rows.Count, 1).End(xlUp).Row
With ComboBox1
For i = 2 To lastRow
If ComboBox1 = "" Then
.AddItem sh.Cells(i, 1).Value
End If
Next i
End With
End Sub
//////////////////////////////////////////////////////
コンボボックスのリストの内容が消えてしまうので、
コードの内容は同じで以下のところにもコードを書いてみました。
//////////////////////////////////////////////////////
Private Sub Worksheet_Activate()
Dim sh As Worksheet
Set sh = Worksheets("マクロ")
Dim i As Integer
Dim lastRow As Integer
lastRow = sh.Cells(Rows.Count, 1).End(xlUp).Row
With ComboBox1
For i = 2 To lastRow
If ComboBox1 = "" Then
.AddItem sh.Cells(i, 1).Value
End If
Next i
End With
End Sub
//////////////////////////////////////////////////////
なんだかもう、訳がわからずぐちゃぐちゃです。
コンボボックスの中に値が入っていると、実行ボタンをクリックしたときは正常にやりたい結果を出すことが実現できます。
ファイルを閉じた後に再度開いてもコンボボックスの中に値があるようにするにはどうしたらよいのか、ド素人の私にご教授いただきたくお願いいたします。
お礼
ありがとうございました。無事に解決しました。もう一つの質問の方にも回答いただきましてありがとうございました。本当に心より感謝申し上げます。
補足
ご回答ありがとうございました。ワークシート上でのコンボボックスの扱いは解決しそうです。頂いたアドバイスを拝読致しまして、ユーザーフォームのコンボボックスの扱いについて不安になって参りました。【http://okwave.jp/qa/q8501720.html】にて質問を新たにさせていただきましたのでアドバイスを頂戴いたしましてもよろしいでしょうか?お忙しい中申し訳ございませんが、何卒よろしくお願い申し上げます。