• ベストアンサー

Excelのカウントアップボタンについて

エクセルで統計を取ろうと思い、クリックすると数字が増えるカウントアップボタンをD~K列それぞれ50セル、合計400セルに取り付けようと思うのですが、 自分の調べた方法ですととても面倒な作業になってしまうので、 もし簡略化できる方がいらっしゃいましたら教えて頂けませんでしょうか。 自分の調べた方法 Sub ボタンD4_Click() Range("D4") = Range("D4") + 1 End Sub 上記のようなマクロを400個作り、それぞれのボタンに当てはめていく。 ボタンはそれぞれ数値の増やしたいセル上に配置しています。 オートフィルで簡単に増やせれば理想です。宜しくお願いします。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんばんは。 Application.Caller と TopLeftCell を組み合わせれば、プロシージャは ひとつで済みそうですよ。 簡単なサンプルです。 ボタンは、カウントアップするセル内に配置し、その他のセルにまたがら ないようにします。あとは、マクロの割り当てをし、フィルでコピー。 ' // 標準モジュール Sub CountUp()   Dim r As Range      On Error Resume Next   Set r = ActiveSheet.Shapes(Application.Caller).TopLeftCell   On Error GoTo 0      If Not r Is Nothing Then     r.Value = r.Value + 1   End If      Set r = Nothing End Sub

aloe_bear
質問者

お礼

完璧です!理想通りです!! 本当にありがとうございました。 こういうのは本で学ぶのでしょうか・・・?

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

ボタンによる方法はすでに回答がでていますので、ボタンを使わないやり方を・・・・。 加算したいセルをダブルクリックすればカウントアップします。 仮にD1:K50が対象範囲なら、当該シートのシートモジュール(シートタブを右クリックしてコードの表示で出てきます。)に Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("D1:K50")) Is Nothing Then Exit Sub Target.Value = Target.Value + 1 Cancel = True End Sub としてみてください。

aloe_bear
質問者

お礼

ありがとうございます!! こんな事も可能なのですね! これは今まで作ったブックに使えそうです!

関連するQ&A

  • マクロボタンが勝手に飛び回る

    エクセルシートの「フォームツールバー」でフォームボタンを配置して印刷マクロを作ったのですが、なぜかボタンをクリックすると勝手に移動してしまいます 原因がサッパリわかりません、 プロシージャは Private Sub CommandButton1_Click() Worksheets("納付書").Range("a1:v35").PrintOut Range("Z4").Select End Sub このようなマクロになっています。 助けてください。

  • エクセル 集計 フォームボタンでクリックカウント

    初めて質問させていただきます。 一応、過去ログで検索してもいまいちわからなかった部分を質問いたします。 よろしくお願いします。 現在エクセルで数百項目に関して集計を行っており、今はある項目の数が増えるたびにそれまでの数にプラス1した数を直接入力しています。 しかしそれだと面倒だし、なにより正確性に欠けると思い、マクロでなんとかしようと思いました。 具体的には、B列に項目、C列にその数、D列にフォームで作成したボタン:マイナスとプラスの二つ といった感じです。 ボタンに一つ一つマクロを登録して、 Sub クリックカウント() Range("c7") = Range("c7") - 1 End Sub のようにすればできることはわかりますが、 なにぶん全部で数百項目にのぼりますので、その全部に対してマクロをひとつひとつ割り当てるのは… かなり美しくないと思いますので(笑) 数百のボタンを作成するのは仕方ないにしても、数百のマクロを書くのは何とかならないでしょうか? 低レベルな質問でお恥ずかしいですが、よろしくお願いします。

  • Excel トグルボタンについて教えて下さい

    今朝、コマンドボタンについて質問をして、 ボタンを押すごとに、特定のセルに1とブランク(=0)を 交互に入力する方法を教えてもらったのですが、その中で 新しい、トグルボタンという機能を教えてもらい、 本などを見て自分なりにやってみたのですが、 回答が見つからず、またまた書き込んでしまいました;; 先ほどは、ABS()の絶対値を使って、0と1を繰り返す方法と 下記のプログラムを教えて頂いたのですが、 Private Sub CommandButton1_Click() If Range("D1").Value <> "" Then   Range("D1").Value = "" Else    Range("D1").Value = 1 End If End Sub 作りたい書類には1を入力したときに凹ませたいのですが、 教えてもらった回答では どうしても、0の時に凹んで 1のときに凸るんです。 内容を色々変えてやってみたものの成功には至らず、 本を見ても回答に見合った例がなく、うまく出来ません。 っというか、コマンドボタンと同様の式では、 凹んだときにTrueを返して、凸ったときにFalseを返すという 折角のトグルボタンの意味が無いですよね? とどのつまりが、お知恵をお貸し頂きたいということで、 毎度ながら申し訳ないのですが 何卒宜しくお願いします。

  • エクセルVBAマクロのオプションボタンについて

    オプションボタンのマクロに関して教えて下さい。 マクロのスキルレベルは、新しいマクロの記録を多用して、マクロを組むレベルです。 「表示-ツールバー-フォーム」から選ぶオプションボタンを使って、オプションボタンAが押されている場合とBが押されている場合で、処理を変えたいのですが、そのオプションボタンの値をどうやっても拾えません。 色々検索した結果、以下のマクロでできる気がしたのですが、駄目でした。 Private Sub OptionButton1_Click() オプション1 = True End Sub Private Sub OptionButton2_Click() オプション2 = True End Sub Sub オプションボタン() If オプション1 = True Then Range("a1") = 1 ElseIf オプション2 = True Then Range("a1") = 2 Else Range("a1") = 0 End If End Sub 作ったオプションボタンを右クリックしてマクロ登録を選ぶと、「オプション1_Click」となっているので、「OptionButton1_Click」を「オプション1_Click」に変えてみたのですが、やっぱり駄目でした。 ネットではユーザフォームを使ったマクロ例はあるのですが、そのまま使用するオプションボタンの例がありません。できればユーザフォームは使いたくありません。 ご存知の方がいらっしゃいましたら、教えて下さい。よろしくお願いします。

  • エクセルで件数をカウントしたいが・・・

    エクセル2000で作った名簿があります。 A-日付(年間分)、B-名前、C-住所、D-金額の並びです。 月別に何区の人が何人かという統計を作りたいので、 まずオートフィルタでC:住所を選択しました。 次にCOUNTを使ってAやDの数字の入った列を選択したのですが、結果の数字がものすごく大きく、どうもオートフィルタで見えていないセルもカウントしているように見えます。 表示されてる部分だけのセルの数を数えるにはどうしたらよいでしょうか。 ちなみに、A列で(以前教わった)一月分オートフィルで出そうとしましたが、 ”「2002/5/1」以上「2002/5/31」以下”としてもこの場合できませんでした。 2列でオートフィルを使うのは初めてではないのですが・・・ ぜひ御回答よろしくお願いします。

  • ExcelのVBAについて教えて下さい

    今、日報の作成をしているのですが 1行目に「1」を入れると、C列の3行目~15行目までがねずみ色になって 休みを意味するように条件付書式を設定しています。 しかし、1を入力というのも不細工だと思い、そのセルの上に コマンドボタンをおいて、 それを押すと下のセルに1が入力されるマクロを作ろうと思ったのですが、 1を入力するまでは良いんですが、 今度同じボタンでもう一度押すと消える、 さらにもう一度押すと1が入力される、 なんていうマクロは組めますか? マクロの記録で、下記のような式は得たのですが つなぎ方等々、分からない事ばかりで出来ません。 どなたか教えて下さい。お願いします。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * Private Sub CommandButton1_Click() Range("D1").Select ActiveCell.FormulaR1C1 = "1" Range("D1").Select Selection.ClearContents End Sub

  • VBA ボタンに登録するセルの参照の仕方。

    参照するセルを指定する方法を教えていただきたいです。 現在の私の知識ですとボタン一つずつに参照セルを一つずつ手打ちするしかなくて。想定としては2000行に2000個ぐらいを想定しております。 フォームコントロールのボタンにマクロを登録して添付画像のように各行に一つづつ配置したいと考えております。 ボタンに登録するマクロは以下のようなもので、ボタンを配置した行と同じ列の特定セルを画像左側のカレンダーにペーストするといったものです。 Sub ボタン_Click() ' セルを選択してコピー Range("AE2").Copy ActiveCell.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False 'コピー状態が残るのでキャンセル End Sub 皆様のお力を貸していただけると幸いです。 よろしくお願いします。 ※エクセルのバージョンはHome and Business 2019 です。

  • オプションボタンで○を描いたり消したり

    いつもありがとうございます。 今度は下記内容で悩んでいます。 どなたか、助けて下さい。 (したい事) オプションボタン1を押す セルJ58に○をいっぱいにオートシェイプで描く 同時にセルJ62のオートシェイプがあれば消す オプションボタン2を押す セルJ62に○をいっぱいにオートシェイプで描く 同時にセルJ58のオートシェイプがあれば消す これと同じ作業ができるシートを10枚作りたいのですが・・・ 各シートはリンクせず、シート内にそれぞれ2つのオプションボタンで対応したいのです。 とりあえず、下記コードを作ったのですが、他のPCですとセルからづれてしまうので セル内に収まるような最大の○を付したいので、どなたかご教授お願い致します。 Sub (1)オプション1_Click() ActiveSheet.Unprotect ActiveSheet.Shapes.AddShape(msoShapeOval, 185, 628, 45.5, 14.5).Select Selection.ShapeRange.Line.Weight = 1 Selection.ShapeRange.Fill.Visible = msoFalse With ActiveSheet For Each ob In .DrawingObjects If Not Intersect(ob.TopLeftCell, .Range("J62")) Is Nothing Then ob.Delete End If Next End With Range("J58").Select ActiveSheet.Protect End Sub

  • EXCELページ閲覧時のカウントアップ方法について

    マクロの初心者です。 EXCELマクロで、ページのカウントアップマクロを作成しましたが、毎回保存をかけないと、カウントアップできない状態です。開くだけで、保存をかけなくても自動的にカウントアップする方法を、どなたか詳しい方、教えていただけないでしょうか?よろしくお願いします。なお、現状のマクロは以下の通りです。どこをどう修正すればよいのか教えていただければ幸いです。 Private Sub Workbook_Open() Sheets("count").Range("AQ3").Value=Sheets("count"),Range("AQ3").Value+1 End Sub

  • エクセルのVBAのことで教えてください

    教えてください。 会社でエクセルを使って客先の住所録を作成しています。 オートフィル機能解除と、CtrlキーとHomeキーを同時に押した状態の機能を持たせたボタンをつくりたいと思っています。 Private Sub CommandButton1_Click() ActiveSheet.ShowAllData Range("A3").Select End Sub コードを上記のように書いたのですが、オートフィルタ機能を使って抽出作業がされていない画面に対してこのボタンを押すと、実行時エラーがでて、 WorksheetクラスのShowAllDataメソッドが失敗しました と表示されてしまいます。 オートフィルタ機能を使っていない状態の画面や、左上のセルが選択されている状態でも、このボタンを押した場合、エラーメッセージがでないようにしたいのですが、可能でしょうか?教えてください!

専門家に質問してみよう