コンボボックスなどに初期値を設定するとき、Excelファイルで設定しておくと便利です。ここの例でもコンボボックスに値を設定しています。
Private SubForm_Load()
Call Xls_FieldData_Add(App.Path & "\work.xls", "Sheet1", "値だよ", Combo1)
End Sub
'-------------------------------------------------------------
' Module
'-------------------------------------------------------------
Sub Xls_FieldData_Add(strXlsFilePath As String, strSheetName As String, strFieldName As String, ctl As Control)
Dim objXls As Object
Dim objXlsWorkBook As Object
Dim objXlsSheet As Object
Dim intColumOfFeature As Integer
Dim objList As Object
Dim intFirstBlankCell As Integer
Dim i As Integer
Set objXls = CreateObject("Excel.Application")
Set objXlsWorkBook = objXls.Workbooks.Open(strXlsFilePath)
Set objXlsSheet = objXlsWorkBook.Sheets(strSheetName)
ctl.Clear
ctl.Visible = False
' ワークシートの先頭行から、選択された列名が入力されている列を検索します。
intColumOfFeature = objXlsSheet.Rows(1).Find(strFieldName).Column
' その列への参照をオブジェクト変数に設定します。
Set objList = objXlsSheet.Columns(intColumOfFeature)
' その列で、最初の空のセルを検索します。
If (objList.Cells(1, 1) = "") Then
intFirstBlankCell = 0
Else
intFirstBlankCell = objList.Find("").Row
End If
'列の内容をコントロールへ追加します。
For i = 2 To intFirstBlankCell - 1
ctl.AddItem objList.Cells(i, 1)
Next
ctl.Text = ctl.List(0)
ctl.Visible = True
objXls.Workbooks.Close
Set objXls = Nothing
Set objXlsWorkBook = Nothing
Set objXlsSheet = Nothing
Set objList = Nothing
End Sub
work.xlsのSheet1には以下のように登録して下さい。
DownLoad vbtips002.lzh 5KB (VB6.0)