- ベストアンサー
コンボボックスのリストに追加
歌手のアルバムリストを作成しています。 コンボボックスに新規入力した歌手の名前をコンボボックスのリストに追加し、既にある歌手名はそのままコンボボックスから選択できるようにしたいんですがどの様にコードを書いていいかわかりません。 お解りになる方がいらっしゃいましたらよろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Private Sub UserForm_Initialize() 'ユーザーフォームを初期化する Dim リスト As New Collection Dim 列 As String, 上端セル As String, 最下端セル As String Dim セル範囲 As Range, 各セル As Range ' 列 = "B" '※3 上端セル = 列 & "2" '※4 最下端セル = 列 & "65536" With Worksheets("SSS") '※5 Set セル範囲 = .Range(.Range(上端セル), .Range(最下端セル).End(xlUp)) End With For Each 各セル In セル範囲 'セル範囲の各セルについて繰り返し処理 On Error Resume Next '次行が実行時エラーならその次行から継続 リスト.Add 各セル.Value, CStr(各セル.Value) 'Collectionオブジェクトにメンバを追加 If Err.Number = 0 Then '実行時エラーが発生していなければ Me.ComboBox1.AddItem 各セル.Value 'コンボボックスのリストに項目を追加 End If On Error GoTo 0 Next End Sub これで出来ますよ 重複もしません。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17070)
#2です。質問に >コードを書いていいかわかりません とあることが判ったので、VBAのことらしい。標題にVBAでと出しておくべきだ。ほかにExcelかアクセスかなども。 Sub Macro1() ' ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _ ' DisplayAsIcon:=False, Left:=104.25, Top:=42.75, Width:=85.5, Height:= _ ' 81).Select ' MsgBox Selection.Name Worksheets("Sheet1").ComboBox2.AddItem "sss" End Sub コメントの部分はマクロの記録を採ることでわかる。 上記はシートに直接コンボを貼り付けたが、フォーム上に貼り付けるのか、質問に書いてない。 項目の追加は上記 AddItem で出来る。 ーーー 質問はこういう簡単な事ではなさそうだが >新規入力した歌手の名前をコンボボックスのリストに追加し、既にある歌手名はそのままコンボボックスから選択できるようにしたいんですがどの・・ の表現を詳しくしてみてください。 リストを表示 該当が無い セルに入力 入力したものを自動的にアイテムに追加 をやるとすると、難しいと思うが、そのようにはっきり書いて、再質問したらどうかな。
- imogasi
- ベストアンサー率27% (4737/17070)
VBAの話ではないですよね。Excelのことですか。それも質問に書いてないようだが。 Excelなら入力規則というのもある。 ある列に既に入手した歌手名を入力しておく。 入力範囲を指定 データ 入力規則 (入力値の種類)リスト 「元の値」のところで 入力してある歌手名のセル範囲を指定 OK ーー >お解りになる方がいらっしゃいましたらよろしくお願い致します。 もし上記なら、Excelで有名な機能なので回答者レベルなら誰でも知っていますよ。 ーー やや似たものに「オートコンプリート」機能があるので、「エクセル オートコンプリート」でGoogleででも照会してみてください。
補足
すみません コンボボックス=VBAでしか使用しないものと思ってました。 今後質問に注意します。
- n-jun
- ベストアンサー率33% (959/2873)
検索値:VBA コンボボックス 追加 http://www.google.co.jp/search?hl=ja&lr=&rls=GGLG,GGLG:2005-51,GGLG:ja&q=VBA+%E3%82%B3%E3%83%B3%E3%83%9C%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9+%E8%BF%BD%E5%8A%A0&revid=1580978055&sa=X&oi=revisions_inline&resnum=0&ct=top-revision&cd=3 あたりでしょうか。
補足
すみません 自分で調べてたら時間が無くなり簡単に答えを知ろうと思い質問してしまいました。 今から調べてみます。
お礼
完璧です。 ありがとうございました。