エクセルでクリックしたセルを加算する方法

このQ&Aのポイント
  • エクセルでB1~B4とB6~B8に記入された数値をクリックして加算し、結果をB10に表示する方法を教えてください。
  • また、クリックしたセルに色を付ける方法についても教えてください。
  • さらに、B1~B4とB6~B8のセルにはそれぞれ1回しか加算できないようにする方法も知りたいです。
回答を見る
  • ベストアンサー

エクセル クリックで加算したい

B1~B4,B6~B8までそれぞれ数値が記入されています。 B1~B4から1つクリック、B6~B8から1つクリックして クリックした和をB10に記載されるようにしたいです。 ================= 例:B4クリック B7クリック  B10=6 ================= この時、クリックしたセルは色を付けておきたいです。 これをC以降のセルも同じような形式で続けていきます。    A  B  C  D     ―――――――― 1│   1  1  ・ 2│   2  2  ・ 3│   3  3  ・ 4│   4  4  ・ 5│ 6│   1  1  ・ 7│   2  2  ・ 8│   3  3  ・ 9│ 10    □  □  ・ 欲を言えばB1~B4,B6~B8にはそれぞれ1つのみの加算にしたいです。 (B1クリックした後に、B3をクリックした時はB1の加算・色ともにキャンセルされる) このようなことはできるでしょうか? 申し訳ありませんがアドバイスをください。 私エクセルの関数はある程度理解しておりますがマクロはほとんど理解しておりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! >クリックした和を・・・ とありますが、セルデータを変更したい場合、セルを選択しただけで マクロが実行されてしまいますので、ダブルクリックではどうでしょうか? 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてセルをダブルクリックしてみてください。 尚、セル色は「黄色」にしています。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'この行から Dim i As Long, j As Long, myFlg, vL If Application.Intersect(Target, Rows(1 & ":" & 8)) Is Nothing _ Or Target.Row = 5 Then Exit Sub Cancel = True j = Target.Column Cells(10, j) = "" If Target.Row <= 4 Then Range(Cells(1, j), Cells(4, j)).Interior.ColorIndex = xlNone Target.Interior.ColorIndex = 6 For i = 6 To 8 If Cells(i, j).Interior.ColorIndex <> xlNone Then myFlg = True vL = Cells(i, j) Exit For End If Next i If myFlg = True Then Cells(10, j) = vL + Target End If Else Range(Cells(6, j), Cells(8, j)).Interior.ColorIndex = xlNone Target.Interior.ColorIndex = 6 For i = 1 To 4 If Cells(i, j).Interior.ColorIndex <> xlNone Then myFlg = True vL = Cells(i, j) Exit For End If Next i If myFlg = True Then Cells(10, j) = vL + Target End If End If End Sub 'この行まで ※ 当然のことながらダブルクリックするセルは数値セルとします。m(_ _)m

tomoharu007
質問者

お礼

ありがとうございました。 想像通りのものができました。 急いでいたので大変助かりました。

その他の回答 (1)

  • kichi8000
  • ベストアンサー率41% (658/1581)
回答No.2

クリックセルの色を変えるマクロと、色のあるセルの合計は別にしました。 Sheetタブ見出しで  右クリック - コードの表示 - VBA画面 マクロをコピーして貼り付け Private Sub Worksheet_SelectionChange(ByVal Target As Range) If IsArray(Target) Then Exit Sub '複数セル If Intersect(Target, Range("1:8")) Is Nothing Then Exit Sub '入力無し If Target.Row > 8 Or Target.Row = 5 Then Exit Sub '行判定 Application.EnableEvents = False 'マクロの再実行停止 COL = RGB(255, 255, 0) '背景カラーの値 TgtR = Target.Row TgtC = Target.Column If TgtR >= 1 And TgtR <= 4 Then Range(Cells(1, TgtC), Cells(4, TgtC)).Interior.ColorIndex = xlNone Target.Interior.Color = COL ElseIf TgtR >= 6 And TgtR <= 8 Then Range(Cells(6, TgtC), Cells(8, TgtC)).Interior.ColorIndex = xlNone Target.Interior.Color = COL End If Rows("10:10").Dirty Application.EnableEvents = True 'マクロの再実行許可 End Sub 画面上の挿入メニューから標準モジュールを選択 プロジェクトウインドウの 標準モジュール-Module1 をダブルクリック モジュール(ユーザーワークシート関数)を貼り付け Function SumColor(ByVal 計算範囲, 条件色 As Long) SumColor = 0 For x = 1 To 計算範囲.Rows.Count If 計算範囲.Rows(x).Interior.Color = 条件色 Then SumColor = SumColor + 計算範囲.Rows(x) End If Next End Function Function RGBColor(ByVal R, G, B) As Long RGBColor = (R + (G + B * 256) * 256) End Function VBAウインドウを閉じます。 計算結果セルA10に入力 =SumColor( A1:A8, RGBColor(255, 255, 0) ) SumColor:単一計算範囲、判定カラー値  判定カラーと一致する背景色のセルを合計 RGBColor:Rカラー、Gカラー、Bカラー  RGB3色カラーをカラー値へ変換

tomoharu007
質問者

お礼

できました。 想像通りのものができました。 本当にありがとうございました。

関連するQ&A

  • Excel 加算数値の個数

    Excelで加算数値の個数を返してくれる関数、または方法がありますか。 たとえば B1セルに =7+6+4 と入っていたら3つの数値を足し算しています のでB2セルに3がはいってほしいのです。もちろんB1セルには17が表示されます。 同様に B1セルに =5+5+5+5+9 と入っていたらB1セルには29、B2セルに5が入る ように、ということです。 よろしくお願いいたします。

  • エクセルで時刻と数値の加算方法

    エクセル2003にて、日時があるセルに入力されています。 例えば、A5セルに、「2012/9/10 13:30」とあり、書式は「yyyy:m:d h:mm aaa」です。 この日時にB5セルにある数値「58時間」を加算した日時をC5セルに表示したいのですが、解りません。書式「0"時間”」です。 TIME関数や、HOUR関数を色々使用してみたのですが、答えが出ません。 是非、教えて下さい。 宜しくお願い致します。

  • エクセル セルをクリックすると色が変わる

    セルをクリックするとそのセルの色が変わるといったようなマクロが組めるでしょうか。 色を変えたいのは、C2をクリックする「色あり」となり、D2は「色なし」、逆にD2をクリックすると「色あり」となり、C2は「色なし」にしたいです。 予定ではB2に氏名を入れておき、C2に在席、D2に不在といった感じで、社員の在席表を作成したいと考えております。ですから、コードの対象範囲を増やせるようにもお願いしたいのですが、不可能であれば、20人くらいの管理可能なコードを宜しくお願いいたします。

  • エクセルVBA ダブルクリックで数字を加算

    お世話になります。 エクセルのVBAに関してご質問させてください。 該当セルをダブルクリックするごとに、数字を加算させてゆくようなマクロを組みたいと考えています。 ご存じのかたがおられましたら、なにとぞよろしくお願いいたします。

  • 条件付加算の式が分かりません。。

    さっそくですが A列1~10セルに「当り」又は「外れ」又は 空欄があり、 B列1~10セルに「数値」が書いてある表の場合で A列「当り」のみB列セルの数値を加算してC10セルに参照したい場合の関数式を 教えていただきたいです。 こちらで 何通か似たような事例を見て いくつか数式を試してみましたが うまく出来ませんでした;; ご存知の方がいらっしゃいましたら アドバイス 宜しくお願いいたします<(__*)>

  • エクセル:1行(又は1列)置きに加算

    A1,C1,E1 セルを加算するのに、 =A1+C1+E1 ではなくて 1列おきに加算するという関数はありますか?? ご存知の方、宜しくお願い致します。

  • エクセル関数について

    セルA24~A150の数値が隣同士のB24~B150の数値と比べてBのセルの値が大きい場合はBのセルを赤色に、小さければ黒色になるような関数式ができるでしょうか?ただしBのセルには数式が入っています。(Bのセルの数式=AVERAGE($A1:$A24)+STDEVP(A1:A24)*3) 出来るなら入力式を教えてください。簡単なマクロでもかまいません。

  • Excelのセルをダブルクリックした時のマクロ

    BeforeDoubleClickイベントで、特定のセルをクリックした場合にマクロを実行する方法についての質問です。 例えば セルC1をダブルクリックするとマクロAが実行 セルC2ををダブルクリックするとマクロBが実行 セルC3ををダブルクリックするとマクロCが実行 と、複数のイベントにそれぞれのマクロを実行させたい場合はどうすればよいのでしょうか。 詳しい方がいましたらアドバイス頂けないでしょうかm(_ _ )m

  • Hyperlink関数をクリックしてくれるマクロ

    どなたか詳しい方教えていただけないでしょうか? ExcelのセルA1に以下のhyperlink関数を入れています。 =HYPERLINK(″#C″&MATCH(B1,C:C),″クリック″) 隣のB1に入れた数字を元にC列に存在する同じ数字先にジャンプするように関数を作ってます。 A1にできたリンクをクリックしたは、B1に入力されているものと同じ数字先のC列に飛ぶようにマクロを組みたいのですが、どうしたらいいでしょうか? ハイパーリンク関数がマクロに組み込めないのと色々調べてみましたがうまくいかないのでお手上げです。 どなたか詳しい方教えていただければと思います。 どうぞよろしくお願いします!

  • Excelの関数でマイナス値の場合は加算しないように設定する式は?

    Excelの関数でマイナス値の場合は加算しないように設定する式は? Excel(2007)で、 セルB1=A1+B2 という計算で、下の行も同じように設定します。 つまり、   C1=B1+C2   D1=C1+D2    …… 今回の累積値=前回の累積値+今回の値 という式ですが、今回の値がマイナスの場合は、加算(マイナスなので結果として差し引く)ことをしないため、マイナス値の場合は今回の値を加算しない、または0とみなすようにしたいのですが、どのように設定すればよいでしょうか。 プログラムでは条件分岐で2つ目の変数が0未満の場合は0というような処理ができそうですが、Excelでマクロなど使わずに簡単に設定できる方法はないでしょうか。

専門家に質問してみよう