| 
    
     |  | こんばんわ。 
 汎用的に使う場合は、何列目が対象なんかを判定せなあかんから、
 その情報をユーザーフォームに与えておけばええんです。
 こんなんかな?(注:セルのクリックやのうて、右クリックで起動させてます)
 
 '--------------------------------------------------------------------
 '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 を宣言するんやったら、全部のモジュールで宣言しておいてな。
 
 試してみてな。
 ほな。
 
 |  |