VBATips

クリックでカウントアップ(数字を増やす)(SelectionChange)【ExcelVBA】

セルクリックで簡単に数字を+1したい

エクセルで販売個数の記録を作成し、運用している企業様も多いのではないでしょうか。
単純なシングルクリックでカウントアップ(数字を+1)できれば、誰でも運用できます。
SelectionChangeを利用して、シングルクリックでチェックを付けましょう。
セルクリックした場合に処理を実行する【SelectionChange】【ExcelVBA】

※小売で販売個数の記録するのであれば、マクロよりPOSレジを導入をお勧めします。

セルクリックで簡単に数字を+1するサンプルコード

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    '■特定セル範囲で起動させる
    If Not Intersect(Target, Range("A2:A500")) Is Nothing Then
        '該当セルが空白もしくは数字以外なら1にする/それ以外はカウントアップする
        If Cells(Target.Row, Target.Column) = "" Or IsNumeric(Cells(Target.Row, Target.Column)) = False Then
            Cells(Target.Row, Target.Column) = 1
        Else
            Cells(Target.Row, Target.Column) = Cells(Target.Row, Target.Column) + 1
        End If
    End If
    '■連続してSelectionChangeは動作しない為、A1選択状態に戻す
    Range("A1").Select
End Sub


今回はシングルクリックですが、ダブルクリックで処理する事も可能です。
セルがダブルクリックされた場合に処理を実行する【BeforeDoubleClick】【ExcelVBA】
※Range(“A1”).Selectの処理が好ましくないのであれば、ダブルクリックのがいいでしょう。

注意事項

関連記事

特定のセルをクリックした場合に処理を実行する【SelectionChange】【ExcelVBA】
チェックシートの入力を簡単に行う(SelectionChangeでクリックで入力完了)【ExcelVBA】
特定のセルをダブルクリックした場合に処理を実行する【BeforeDoubleClick】【ExcelVBA】

コメント

  1. 数字を減らしたり消したりする方法は?

    • 別のセルをキーにしてそのまま減らしたり、文字を空白で入れたりするコードを書くだけかと思います。

      運用ルールなどもあるかと思いますので、必要あれば有償対応致します。お気軽にお問い合わせください。https://vba-create.jp/contact/

  2. カウントアップの範囲外のセルをクリックした場合もA1に戻ってしまうのですが範囲外のセルをクリックしたときはA1に戻らないようにするにはどうすればいいですか

    • Intersectで範囲を指定していますので、その条件外にすればよいかと。不明点あれば1質問500円でお受けしますのでお問い合わせページよりご連絡ください。

タイトルとURLをコピーしました