Excel VBA質問箱 IV

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

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


11554 / 13646 ツリー ←次へ | 前へ→

【15490】合計 もみじ 04/6/27(日) 7:51 質問[未読]
【15492】Re:合計 IROC 04/6/27(日) 10:08 回答[未読]
【15499】Re:合計 かみちゃん 04/6/27(日) 14:40 回答[未読]
【15503】Re:合計 もみじ 04/6/27(日) 21:11 お礼[未読]
【15502】Re:合計 もみじ 04/6/27(日) 21:10 お礼[未読]

【15490】合計
質問  もみじ  - 04/6/27(日) 7:51 -

引用なし
パスワード
   Excelで足し算を行いたいのですが

  A   B   C 
1     2   3
2     5   8 
3     7   20
4     8   10

このようになっていて
B1のセルに7の数字を入れるとC1の数字3と足し算されて10の数字が表示されるように、B2に5を入れるとC2は13、B3に3入れるとC3に23・・・・
Bのセルに任意の数字を入れるたびにCの数字と合計して表示するようできないものでしょうか。

【15492】Re:合計
回答  IROC  - 04/6/27(日) 10:08 -

引用なし
パスワード
   D列に
=B1+C1
と入力するのではダメなのでしょうか?

マクロを使えば、C列に結果を表示することも出来ますが、
もし、B列の入力を間違えると元に戻せなくなりますよ。
(マクロはUndoできなので、ファイルを開き直すしかない。)

それでも構わないのであれば、
changeイベントで出来ますが・・・

【15499】Re:合計
回答  かみちゃん  - 04/6/27(日) 14:40 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Changeイベントで出来ますが・・・

とりあえず、Changeイベントの例です。
ある程度のエラー(セルを2つ選択して、DELを押したり、入力時に Ctrl+Enterで確定したときなど)に対応しています。
これらのエラーの対応を考えなくてよければ、もう少しスマートになりますが・・・

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Rng As Range
 Dim StrTgtRng As String
 
 '機能させる範囲を指定
 '方法1--B列全体
 StrTgtRng = Cells(1, 2).Address & ":" & Cells(Columns(2).Rows.Count, 2).Address()
 '方法2--特定の範囲
 'StrTgtRng = "B1:B20"
 
 'Changeイベント時の対象セルと機能させるセルに一致しているセル範囲を取得
 Set Target = Intersect(Range(StrTgtRng), Target)
 '一致セルがなければ、何もしない
 If Target Is Nothing Then Exit Sub
 For Each Rng In Target
  '一致セルの隣のセルの値を置き換える
  Rng.Offset(0, 1).Value = Rng.Offset(0, 1).Value + Rng.Value
 Next Rng
End Sub

【15502】Re:合計
お礼  もみじ  - 04/6/27(日) 21:10 -

引用なし
パスワード
   IROC さん

無事できました、ありがとうございました。

【15503】Re:合計
お礼  もみじ  - 04/6/27(日) 21:11 -

引用なし
パスワード
   かみちゃん さんありがとうございました。


おかげさまで無事できました。

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