Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


15711 / 76734 ←次へ | 前へ→

【66498】Re:条件で変わる増える足し算
発言  kanabun  - 10/9/6(月) 22:07 -

引用なし
パスワード
   ▼スコーピオ さん:
こんにちは

>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個分のセルの値の合計をとっています。

こういうことでなければ、適宜、修正してください。
4 hits

【66497】条件で変わる増える足し算 スコーピオ 10/9/6(月) 21:46 質問
【66498】Re:条件で変わる増える足し算 kanabun 10/9/6(月) 22:07 発言
【66499】Re:条件で変わる増える足し算 kanabun 10/9/6(月) 22:10 発言
【66500】Re:条件で変わる増える足し算 UO3 10/9/6(月) 22:10 回答
【66502】Re:条件で変わる増える足し算 スコーピオ 10/9/6(月) 23:27 お礼
【66503】Re:条件で変わる増える足し算 kanabun 10/9/6(月) 23:31 発言

15711 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free