• ベストアンサー

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

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

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

割り込ませていただきます。 >列番号の指定方法はどのようにしたらよろしいでしょうか。 排他的範囲の方法もありますが、以下のような方法が分かりやすいのではないかと思います。 #1さんの HasFormula は、数式があるなしの判定ですから、必要に応じて入れてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  Cancel = True  If Target.Column = 3 Or Target.Column = 5 Then '3列目と5列目   If VarType(Target) = vbDouble Then    Target.Value = Target.Value + 1   End If  End If End Sub   p.s.Excelの枠線には、ショートカットが含まれていますから、なるべく、上下の枠線には触れないようにしてください。カーソルが思わぬ方向に飛ぶことがあります。いろいろ工夫してみましたが、このショートカットをなくす方法が見つかりませんでした。

perikan2
質問者

補足

ありがとうございます! 不思議で面白いですね!枠線をさわるとぴょこぴょことカーソルが飛ぶのですね。 ご教授頂きましたやり方でできました。 ちなみに、これをさらに、範囲を広くする場合ですが、  If Target.Column = ("3:30") みたいな入力で大丈夫なのでしょうか。すみません、素人なもので…。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

>ちなみに、これをさらに、範囲を広くする場合ですが、 > If Target.Column = ("3:30") If Target.Column = 3 Or Target.Column = 5 Then '3列目と5列目      ↓ If Not Intersect(Target, Columns("C:AD")) Is Nothing Then  とするか、 If Target.Column >= 3 And Target.Column <= 30 Then となります。

perikan2
質問者

お礼

ありがとうございます。 最初に挙げてくださったやり方でやってみたいと思います。 勉強になります。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

■特定のセル(例はA1)の値を1だけ加算するマクロ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$A$1" Then Target.Value = Target.Value + 1 End If End Sub ■選択セルが数値でかつ数式でない場合のみ、1だけ追加するマクロ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If IsNumeric(Target) And Not Target.HasFormula Then Target.Value = Target.Value + 1 End If End Sub ※加算する数値をセル参照する場合は + 1 を + RANGE("A1") に置き換えてください。

perikan2
質問者

補足

mshr1962様 早速、ご丁寧に2パターンご指導くださり、ありがとうございます!! さらに込み入ったご質問をさせて頂きたいのですが、ダブルクリックにて数値を加算させるセルを、ある列(あるいは複数列)についてのみ実行させたい場合、列番号の指定方法はどのようにしたらよろしいでしょうか。 二重のご質問となり大変恐縮ですが、よろしくお願い致します。

関連するQ&A