[[20181129001322]] 『セルをクリックするごとに数字を順番に入力』(まりん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルをクリックするごとに数字を順番に入力』(まりん)

同一セルをクリックすると1、もう一度クリックすると2・・・というように5まで順番にクリックするだけで入力できるようにすることは可能でしょうか?G4からAK328までその操作が行えるようにしたいと考えています。VBA?やマクロは全くの初心者になります。少しずつ覚えていきたいと思いますが、なかなか難しくて・・。申し訳ありませんが、詳しく教えていただけますでしょうか?

< 使用 Excel:Excel2016、使用 OS:Windows10 >


ダブルクリッククリックですが。

下記コードをシートモジュールに貼り付けてください。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Intersect(Target, Range("g4:ak328")) Is Nothing Then Exit Sub
    If 1 > Target.Count Then Exit Sub
    Cancel = True
    If Target.Value >= 5 Then Exit Sub
    Target.Value = Target.Value + 1
End Sub

(まもなく定年) 2018/11/29(木) 01:14


ものすごい余計なお世話でしょうけど、「BeforeDoubleClick」イベントだから、
Target.Count が 1以外になることが無さそうな・・・・

また、Target.Value >= 5 で抜けるのではなく、
Target.Value < 5 で加算したらいいのでは?

(もこな2) 2018/11/29(木) 02:18


 右クリックなら

 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("G4:AK328")) Is Nothing Then
      If Target.Value < 5 Then
          Cancel = True
          Target = Target.Value + 1
      End If
    End If
 End Sub
(TAKA) 2018/11/29(木) 09:41

 もこな2さんへ

 >また、Target.Value >= 5 で抜けるのではなく、 
 >Target.Value < 5 で加算したらいいのでは? 

 どんな違いが出るんですか、教えてください。

 TAKAさんへ

 右クリックの場合は、Target.Count が 1以外になることがあります。

 ※範囲選択してから、右クリックした時

(半平太) 2018/11/29(木) 09:55


 行列見出しを右クリックでもTarget.Countが1より大きくなる。
(ねむねむ) 2018/11/29(木) 10:06

私もダブルクリックより右クリックが使いやすいと思うし、範囲選択から右クリックしても良いと思うので、対応したコード例なぞ。
 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Dim R As Range
    Dim R1 As Range

    Set R = Intersect(Target, Range("G4:AK328"))
    If R Is Nothing Then Exit Sub

    For Each R1 In R
        If IsNumeric(R1.Value) = True Then
            R1.Value = Int(R1.Value) Mod 5 + 1
        End If
    Next R1

    Cancel = True
 End Sub
(???) 2018/11/29(木) 10:32

5の次は1に戻るようにしてみましたが、5で止まるようにするならば、R1.Value を変えている行を以下に変えてください。(他の例のように、If文で判定してもOK)
            R1.Value = WorksheetFunction.Min(R1.Value + 1, 5)
(???) 2018/11/29(木) 10:38

>どんな違いが出るんですか、教えてください。
ただの趣味ですが、抜ける処理を記述する分の1行が減らせますね。
 If Target.Value >= 5 Then Exit Sub
 Target.Value = Target.Value + 1
   ↓
 If Target.Value < 5 Then Target.Value = Target.Value + 1

ただ、どちらにせよ、だからなんだってレベルで大差ないので「したらいいのでは」は言い過ぎですね。「でもいいのでは」に訂正します。
どうも寝ぼけていたようで、まもなく定年さん大変失礼しました。

「BeforeDoubleClick」イベントの方はこれまで深く考えていませんでしたけど、selection全体が右クリックされたっていう判定?になってるんですね。
始めて認識しました。こちらも、見越してのことであれば重ね重ね失礼しました。

(もこな2) 2018/11/29(木) 12:38


みなさんお忙しいところ、ご教授いただき、誠にありがとうございます。
(まもなく定年)様のマクロを張り付けたところ希望していた操作が可能になりました。
右クリックの案もいただきましたが、今回は左クリックの案で試させていただきました。

マクロの組み立て方というか、どうやったらマクロを覚えられるのかわかりませんが、もっと勉強していきます。助かりました。

ありがとうございました。
(まりん) 2018/11/29(木) 21:07


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.