| 
    
     |  | ▼スコーピオ さん: こんにちは
 
 >Sheet1のA2セルはリスト選択になっていて、選ばれたリストに応じて
 >A4セルに応答が異なるようにと考えています。
 >
 >1つ分ならSheet2のB2のみ
 >2つ分ならSheet2のB2+C2
 >3つ分ならSheet2のB2+C2+D2
 
 [A2]セルの値が変化したら、処理をするなら
 シートのChangeイベントを使うといいですよ
 
 '----------------------------------------- Sheet1 モジュールに記述
 
 Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address(0, 0) <> "A2" Then Exit Sub
 
 Dim m As Long
 m = Val(Target.Value)
 Select Case m
 Case 1 To 7
 Application.EnableEvents = False
 Range("A4").Value = WorksheetFunction.Sum _
 (Worksheets("Sheet2").Range("A2").Resize(, m))
 Application.EnableEvents = True
 End Select
 
 End Sub
 
 
 > If Target.Address(0, 0) <> "A2" Then Exit Sub
 のところは 変更のあったセルが [A2]でなければ、何もしない
 という処理です。
 
 > m = Val(Target.Value)
 
 [A2]セルの値が「1つ目」「2つ目」「3つ目」... のとき
 > Val(Target.Value)
 とすると、 1, 2, 3 ... という数値が得られます。
 
 その下は
 > Select Case m
 >  Case 1 To 7
 数値m が 1〜7 のどれかであれば、 ということです。
 
 >   Range("A4").Value = WorksheetFunction.Sum _
 >      (Worksheets("Sheet2").Range("A2").Resize(, m))
 
 は、この一行で
 Sheet2の[A2]セルから 右に m個分のセルの値の合計をとっています。
 
 こういうことでなければ、適宜、修正してください。
 
 |  |