|
▼スコーピオ さん:
こんにちは
>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個分のセルの値の合計をとっています。
こういうことでなければ、適宜、修正してください。
|
|