[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ComboBoxの表示について』(ミッチェル)
ComboBox内の表示は2行にならないのでしょうか? または改行できる方法は無いのでしょうか? 教えてください。
例えば、こういうことでしょうか? ComboBoxをメモとして使用してるということでしたら これでいいと思うのですが、何かのリストを 読み込んでるとしたら、違うかなぁ・・・? (yukichip)
Excelでは、コンボボックスにMultilineというプロパティがないので 小細工しないと改行は処理は無理だと思いますが・・・。
小細工の例 単にコンボボックスと記述するだけでなく、どこに配置するそれなのかはっきり記述してください。
対象コンボボックスは、シートに配置するのか、ユーザーフォームなのか? シート配置の場合は、それがActiveXコントロール(コマンドバーコントロールツールボックスにあるか)か、 Excelコントロール(コマンドバーフォームにあるコントロール)なのか?
それによっては、方法も違う場合もありますから。
記述する例は、ユーザーフォームの場合です。
新規ブックにユーザーフォーム(Userform1)だけ作成してください。 コントロールは、コードで配置しますから、何も作成しないで下さい。
作成したUserform1のモジュールに
'================================================================================= Option Explicit Private WithEvents cmb As MSForms.ComboBox Private txt As MSForms.TextBox '================================================================================= Private Sub cmb_Change() txt.Text = cmb.Text End Sub '================================================================================= Private Sub UserForm_Initialize() With Me .Width = 284 .Height = 148 End With Set cmb = Controls.Add("Forms.ComboBox.1", , True) With cmb .Left = 36 .Top = 24 .Width = 204 .Height = 54 .Style = fmStyleDropDownList .List() = Array("aaaaa" & vbCrLf & "bbbb", _ "ccccc" & vbCrLf & "ddddd", _ "eeeeeee" & vbCrLf & "ffffff") End With Set txt = Controls.Add("Forms.TextBox.1", , True) With txt .Left = 36 .Top = 24 .Width = 192 .Height = 54 .MultiLine = True .TabStop = False '.Locked = True コメント外せば、直接入力不可 End With End Sub
標準モジュールに
'================================================================================ Sub main() UserForm1.Show End Sub
でmainを実行してください。
Userform1が表示され、コンボボックスもどきが表示されます。 リストから選択された文字列は、選択終了時は、改行されて表示されます。 又、直接入力時は、Shift+Enterキーで改行可能です。
つまり、コンボボックスとテキストボックスの重ね合わせです。
試してみてください。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.