システムwiki

Office:2つのマクロを1つにマージする

Charles 解決済 最終更新日:2020-10-10 08:20

これらのマクロを1つにマージし、そのマクロを図形に割り当てたいので、最初のマクロから結果が得られたときに図形をクリックすると、2番目のマクロから結果が得られます.私は自分でそれらをマージしようとしましたが、
成功していません.
Sub Shape_SingleClick()
Dim Sh As Shape
Set Sh=ActiveSheet.Shapes(Application.Caller)
MsgBox( "シングルクリック")
End Sub
Public LastClickObj As String、LastClickTime As Date
サブShapeDoubleClick()
LastClickObj=""の場合
LastClickObj=Application.Caller
LastClickTime=CDbl(タイマー)
そうしないと
If CDbl(Timer)-LastClickTime>0.25 Then
LastClickObj=Application.Caller
LastClickTime=CDbl(タイマー)
そうしないと
LastClickObj=Application.Caller Then
MsgBox( "ダブルクリック")
LastClickObj=""
そうしないと
LastClickObj=Application.Caller
LastClickTime=CDbl(タイマー)
終了する場合
終了する場合
終了する場合
End Sub

返信リスト(回答:1)

1 #
Nothing 2

To:Charles
Re:シェイプをダブルクリック
VBAはシェイプのダブルクリックを認識しません.
ただし、Shiftキーが押されたかどうかは検出できます.

そのため、図形をクリックしたときにShiftキーを押して2番目のマクロを呼び出すことができます.
'


'次の2行はモジュールの上部に移動します

Option Explicit
Private Declare Function GetKeyState Lib "user32.dll"(ByVal nVirtKey As Long)As Integer
Sub FirstMacro()
Dim ShiftPressed As Boolean
'Returns True if shift key is Pressed
ShiftPressed=GetKeyState(vbKeyShift)<0
If ShiftPressed Then
Call SecondMacro
Else
MsgBox "shift key was up."
'do stuff here
End If
End Sub
Sub SecondMacro()
MsgBox "2nd Macro called"
'内容はこちら
End Sub
'


ExcelワークブックとMediaFireのアドイン..

https://www.mediafire.com/folder/lto3hbhyq0hcf/Documents