Visual Basic Tips


Excelファイルの読み込み


コンボボックスなどに初期値を設定するとき、Excelファイルで設定しておくと便利です。ここの例でもコンボボックスに値を設定しています。

Private Sub Form_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)