|
こんばんわ。
汎用的に使う場合は、何列目が対象なんかを判定せなあかんから、
その情報をユーザーフォームに与えておけばええんです。
こんなんかな?(注:セルのクリックやのうて、右クリックで起動させてます)
'--------------------------------------------------------------------
'Sheet2のモジュール
Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Cells.Count = 1 Then
If Target.Column < 4 Then
Cancel = True
Load UserForm1
UserForm1.TargetColumn = Target.Column
UserForm1.Show
Unload UserForm1
Set UserForm1 = Nothing
End If
End If
End Sub
'--------------------------------------------------------------------
'UserForm1のモジュール
Friend Property Let TargetColumn(ByVal n As Long)
With Worksheets("Sheet1")
ListBox1.RowSource = "Sheet1!" & .Range(.Cells(1, n), _
.Cells(.Rows.Count, n).End(xlUp)).Address
End With
End Property
Private Sub ListBox1_Click()
ActiveCell.Value = ListBox1.Value
Me.Hide
End Sub
ユーザーフォームに列の数値を与えて、同時にリストを設定してます。
標準モジュールは不用なんで、削除(解放)してください。
それと Option Explicit を宣言するんやったら、全部のモジュールで宣言しておいてな。
試してみてな。
ほな。
|
|