【Tips】コンボボックス型セルの基本的な使用例
対象製品
SPREAD for Windows Forms 5.0J
詳細
下記にコンボボックス型セルに関して、これまでお問い合わせが多かったことについて記載します。
1.表示値/実値のように2種類のデータを持たせる
2.任意の項目を表示(選択)させる
3.項目を追加する
4.セル毎に項目を動的に変更する
1.表示値/実値のように2種類のデータを持たせる
ComboBoxCellType クラスのItems プロパティによりリストに表示される項目、ItemData プロパティによりリストの表示項目に対する実地を設定することができます。また、EditorValue プロパティにより参照するセルの値の種類を指定することができます。
◎サンプルコード
2.任意の項目を表示(選択)させる
セルのValue プロパティからコードで任意の項目を表示させることができます。なお、ComboBoxCellType クラスのEditorValue プロパティにより、セルのValue プロパティに設定する値の種類を変更します。
◎サンプルコード
3.項目を追加する
コンボボックス型セルの項目はString型の配列となっています。そのため、ArrayListクラスを利用することでコンボボックス型セルの項目を追加することができます。なお、ArrayListクラスやString型配列の詳細についてはMSDNライブラリをご参照ください。
◎サンプルコード
4.セル毎に項目を動的に変更する
セル毎に項目を動的に変更する場合、セル毎にコンボボックス型セルのインスタンスを作成する必要があります。
◎サンプルコード
1.表示値/実値のように2種類のデータを持たせる
2.任意の項目を表示(選択)させる
3.項目を追加する
4.セル毎に項目を動的に変更する
1.表示値/実値のように2種類のデータを持たせる
ComboBoxCellType クラスのItems プロパティによりリストに表示される項目、ItemData プロパティによりリストの表示項目に対する実地を設定することができます。また、EditorValue プロパティにより参照するセルの値の種類を指定することができます。
◎サンプルコード
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cmb As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
'リストに表示されるアイテムを定義します
cmb.Items = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
'表示される各アイテムに対応したデータを定義します
cmb.ItemData = New String() {"001", "002", "003", "004", "005", "006"}
'セルから取得/設定する値はItemDataとします
cmb.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData
FpSpread1.ActiveSheet.Cells(0, 0).CellType = cmb
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim check As String = String.Empty
check += "表示値:" + FpSpread1.ActiveSheet.Cells(0, 0).Text.ToString() + vbCrLf
check += "実値:" + FpSpread1.ActiveSheet.Cells(0, 0).Value.ToString()
MessageBox.Show(check, "確認")
End Sub
Dim cmb As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
'リストに表示されるアイテムを定義します
cmb.Items = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
'表示される各アイテムに対応したデータを定義します
cmb.ItemData = New String() {"001", "002", "003", "004", "005", "006"}
'セルから取得/設定する値はItemDataとします
cmb.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData
FpSpread1.ActiveSheet.Cells(0, 0).CellType = cmb
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim check As String = String.Empty
check += "表示値:" + FpSpread1.ActiveSheet.Cells(0, 0).Text.ToString() + vbCrLf
check += "実値:" + FpSpread1.ActiveSheet.Cells(0, 0).Value.ToString()
MessageBox.Show(check, "確認")
End Sub
2.任意の項目を表示(選択)させる
セルのValue プロパティからコードで任意の項目を表示させることができます。なお、ComboBoxCellType クラスのEditorValue プロパティにより、セルのValue プロパティに設定する値の種類を変更します。
◎サンプルコード
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cmbstr As String() = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
Dim cmbval As String() = New String() {"001", "002", "003", "004", "005", "006"}
Dim cmb1 As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb1.Items = cmbstr
cmb1.ItemData = cmbval
'セルから取得/設定する値はStringとします
cmb1.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.String
FpSpread1.ActiveSheet.Cells(0, 0).CellType = cmb1
'1つ目の項目(Jan)を選択します
FpSpread1.ActiveSheet.Cells(0, 0).Value = "Jan"
Dim cmb2 As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb2.Items = cmbstr
cmb2.ItemData = cmbval
'セルから取得/設定する値はIndexとします
cmb2.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.Index
FpSpread1.ActiveSheet.Cells(0, 1).CellType = cmb2
'2つ目の項目(Feb)を選択します
FpSpread1.ActiveSheet.Cells(0, 1).Value = 1
Dim cmb3 As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb3.Items = cmbstr
cmb3.ItemData = cmbval
'セルから取得/設定する値はItemDataとします
cmb3.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData
FpSpread1.ActiveSheet.Cells(0, 2).CellType = cmb3
'3つ目の項目(Mar)を選択します
FpSpread1.ActiveSheet.Cells(0, 2).Value = "003"
End Sub
Dim cmbstr As String() = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
Dim cmbval As String() = New String() {"001", "002", "003", "004", "005", "006"}
Dim cmb1 As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb1.Items = cmbstr
cmb1.ItemData = cmbval
'セルから取得/設定する値はStringとします
cmb1.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.String
FpSpread1.ActiveSheet.Cells(0, 0).CellType = cmb1
'1つ目の項目(Jan)を選択します
FpSpread1.ActiveSheet.Cells(0, 0).Value = "Jan"
Dim cmb2 As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb2.Items = cmbstr
cmb2.ItemData = cmbval
'セルから取得/設定する値はIndexとします
cmb2.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.Index
FpSpread1.ActiveSheet.Cells(0, 1).CellType = cmb2
'2つ目の項目(Feb)を選択します
FpSpread1.ActiveSheet.Cells(0, 1).Value = 1
Dim cmb3 As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb3.Items = cmbstr
cmb3.ItemData = cmbval
'セルから取得/設定する値はItemDataとします
cmb3.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData
FpSpread1.ActiveSheet.Cells(0, 2).CellType = cmb3
'3つ目の項目(Mar)を選択します
FpSpread1.ActiveSheet.Cells(0, 2).Value = "003"
End Sub
3.項目を追加する
コンボボックス型セルの項目はString型の配列となっています。そのため、ArrayListクラスを利用することでコンボボックス型セルの項目を追加することができます。なお、ArrayListクラスやString型配列の詳細についてはMSDNライブラリをご参照ください。
◎サンプルコード
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cmb As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb.Items = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
FpSpread1.ActiveSheet.Cells(0, 0).CellType = cmb
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cmb As FarPoint.Win.Spread.CellType.ComboBoxCellType = CType(FpSpread1.ActiveSheet.GetCellType(0, 0), FarPoint.Win.Spread.CellType.ComboBoxCellType)
'ArrayListクラスを利用して項目の追加を行います
Dim al As ArrayList = New ArrayList()
al.AddRange(cmb.Items)
al.Add("Jul")
al.Add("Aug")
'Items プロパティを再設定します
cmb.Items = CType(al.ToArray(GetType(String)), String())
End Sub
Dim cmb As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb.Items = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
FpSpread1.ActiveSheet.Cells(0, 0).CellType = cmb
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cmb As FarPoint.Win.Spread.CellType.ComboBoxCellType = CType(FpSpread1.ActiveSheet.GetCellType(0, 0), FarPoint.Win.Spread.CellType.ComboBoxCellType)
'ArrayListクラスを利用して項目の追加を行います
Dim al As ArrayList = New ArrayList()
al.AddRange(cmb.Items)
al.Add("Jul")
al.Add("Aug")
'Items プロパティを再設定します
cmb.Items = CType(al.ToArray(GetType(String)), String())
End Sub
4.セル毎に項目を動的に変更する
セル毎に項目を動的に変更する場合、セル毎にコンボボックス型セルのインスタンスを作成する必要があります。
◎サンプルコード
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cmb1 As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb1.Items = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
FpSpread1.ActiveSheet.Cells(1, 0).CellType = cmb1
Dim cmb2 As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb2.Items = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
FpSpread1.ActiveSheet.Cells(1, 1).CellType = cmb2
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'B2セルのコンボボックス型セルの項目を変更します
Dim cmb2 As FarPoint.Win.Spread.CellType.ComboBoxCellType = CType(FpSpread1.ActiveSheet.GetCellType(1, 1), FarPoint.Win.Spread.CellType.ComboBoxCellType)
cmb2.Items = New String() {"1月", "2月", "3月", "4月", "5月", "6月"}
End Sub
Dim cmb1 As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb1.Items = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
FpSpread1.ActiveSheet.Cells(1, 0).CellType = cmb1
Dim cmb2 As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
cmb2.Items = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
FpSpread1.ActiveSheet.Cells(1, 1).CellType = cmb2
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'B2セルのコンボボックス型セルの項目を変更します
Dim cmb2 As FarPoint.Win.Spread.CellType.ComboBoxCellType = CType(FpSpread1.ActiveSheet.GetCellType(1, 1), FarPoint.Win.Spread.CellType.ComboBoxCellType)
cmb2.Items = New String() {"1月", "2月", "3月", "4月", "5月", "6月"}
End Sub
関連情報
- 編集終了時にコンボボックス型セルに入力した文字列が消えてしまいます
- 【コンボボックス型セル】【マルチカラムコンボボックス型セル】コードによってドロップダウンリストを表示させることはできますか
- コンボボックス型セルのデータの扱いについて
- 【コンボボックス型セル】【マルチカラムコンボボックス型セル】 Enterキーによりドロップダウンリストが表示されるのを抑止する方法はありますか?
- 【コンボボックス型セル】 初期値を設定したい
キーワード
「コンボボックス型セル/マルチカラムコンボボックス型セル」
この文書は、以前は次のFAQ IDで公開されていました : 12964