2017-09-23 6 views
1

Excelを初めて使用していて、いくつかのコマンドボタンがあるワークシートがあります。私は、(通常のように)左クリックして右クリックすることで、複数のセルに値を追加できるかどうかを知りたいです。複数のセルで右クリック/左クリック機能を使用して値を変更するVBAコード

例えば、私がコマンドボタンをクリックすると、セルにA1が(+1)が追加されますが、同じコマンドボタンを右クリックすると、(+1)がセルB1に追加されます。へ

Sub Action68_Click() 
    'update column BR by adding 1 to the cell value' 
    Worksheets("Stats").Cells(CurrentPlayerRow, "BR").Value = Worksheets("Stats").Cells(CurrentPlayerRow, "BR").Value + 1 
End Sub` 

は、(1)を追加するために右クリックボタンを使用するようにとにかくあり:ここで

は私が通常の左クリックをするとき(1)を追加する必要がコードでありますセルBQ

+0

代わりに 'SpinButton'を使用してください。また、WinApi呼び出しを使用してマウスボタンをフックすることもできます。私はこのサイトのダウンロード[Win32 Hooks in VB - vbAccelerator Hook Library](http://www.vbaccelerator.com/codelib/hook/vbalhook.htm)に問題がありましたが、それは良い参考のようです。 'スピンボタン(SpinButton) 'を数分間で稼働させることができます。一方、マウスボタンのフックやフックを解除すると、何時間もの楽しい時間が過ごせます。 –

答えて

0

ボタンを使用する代わりに、イベントコードを使用して目的の出力を得ることができます。

このようなイベントは、ダブルクリックイベントと右クリックイベント。

あなたはダブル行2から開始列BRの任意のセルにをクリックしてください場合は、右の行2から開始列BRの任意のセルにをクリックした場合

  1. 、それは、それを1
  2. によってそのセルをインクリメントします列BSの対応するセルを1だけインクリメントします。

この方法で作業することができます。シートモジュールに次のコードを置き、それを行うには、シートタブ - >表示を右クリックします。次のコードをコードし、開いたコードウィンドウに貼り付けます。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
Dim oval 
If Target.Column = Range("BR1").Column And Target.Row > 1 Then 
    Cancel = True 
    oval = Target.Value 
    If IsNumeric(oval) Then 
     Target.Value = oval + 1 
    End If 
End If 
End Sub 

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 
Dim oval 
If Target.Column = Range("BR1").Column And Target.Row > 1 Then 
    Cancel = True 
    oval = Target.Offset(0, 1).Value 
    If IsNumeric(oval) Then 
     Target.Offset(0, 1).Value = oval + 1 
    End If 
End If 
End Sub 
+0

ありがとうございました。これは間違いなく良い方法です。それは有り難いです。 –

+0

@ S.Clancyよろしくお願いします!あなたはそのアイデアが気に入ってうれしいです。それで問題が解決した場合は、その答えを受け入れて問題を解決済みとしてマークしてください。 :) – sktneer

関連する問題