アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

エクセルのVBAに関してご質問させてください。

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

A 回答 (3件)

割り込ませていただきます。


>列番号の指定方法はどのようにしたらよろしいでしょうか。
排他的範囲の方法もありますが、以下のような方法が分かりやすいのではないかと思います。
#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の枠線には、ショートカットが含まれていますから、なるべく、上下の枠線には触れないようにしてください。カーソルが思わぬ方向に飛ぶことがあります。いろいろ工夫してみましたが、このショートカットをなくす方法が見つかりませんでした。

この回答への補足

ありがとうございます!
不思議で面白いですね!枠線をさわるとぴょこぴょことカーソルが飛ぶのですね。
ご教授頂きましたやり方でできました。
ちなみに、これをさらに、範囲を広くする場合ですが、

 If Target.Column = ("3:30")

みたいな入力で大丈夫なのでしょうか。すみません、素人なもので…。

補足日時:2011/01/31 14:14
    • good
    • 0

>ちなみに、これをさらに、範囲を広くする場合ですが、


> 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

となります。
    • good
    • 0
この回答へのお礼

ありがとうございます。

最初に挙げてくださったやり方でやってみたいと思います。

勉強になります。

お礼日時:2011/02/10 12:26

■特定のセル(例は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") に置き換えてください。

この回答への補足

mshr1962様

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

補足日時:2011/01/30 09:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!