|
こんにちは
UserFormを使用した例です。
UserFormに、ListBox1, cmdOK, cmdキャンセル を配置します。
ListBox1のListCountプロパティを3にします。
以下のコードをフォームモジュールに貼り付けます。
UserFormを表示し(表示方法は任意)、
cmdOKのクリックでアクティブセルから右に、選択した値が入力されます。^d^
Option Explicit
Private DataBook As Workbook
Private flgOpened As Boolean
Private rngDest As Range
Private Sub cmdOK_Click()
Dim i As Integer
With Me.ListBox1
If .ListIndex = -1 Then Exit Sub
For i = 0 To 2
rngDest.Offset(, i).Value = .List(.ListIndex, i)
Next
End With
Unload Me
End Sub
Private Sub cmdキャンセル_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim DataPath As String
DataPath = "A.xls"
Set rngDest = ActiveCell
On Error Resume Next
Set DataBook = Workbooks(DataPath)
On Error GoTo 0
If DataBook Is Nothing Then
flgOpened = False
DataPath = ThisWorkbook.Path & "\" & DataPath
Set DataBook = Workbooks.Open(DataPath)
Else
flgOpened = True
End If
Me.ListBox1.RowSource = _
DataBook.Worksheets("Sheet2").Range("A1:C100") _
.Address(1, 1, xlA1, 1)
End Sub
Private Sub UserForm_Terminate()
If flgOpened = False Then
DataBook.Close False
End If
End Sub
|
|