2016-07-21 7 views
0

マルコが発生する前に、PowerPointのActiveXテキストボックスに複数の文字を入力する必要があります。現在のマクロは、各文字が入力されると起動します。TextBox1_Changeに複数の文字を入力するには

Private Sub TextBox1_Change() 
    IF TextBox1.Value = "18" then 
     MsgBox "You have entered 18" 
    End If 
End Sub 

までの試みは、しかし、入力してタスクを実行するためにクリックが面倒で、私はすべての文字がテキストボックスに入力した後のアクションをトリガーするCommandButtonを追加する必要がありましたので、失敗していました。したがって、必要なデータが入力された後にEnter/Returnキーを押した後にマクロがトリガーされるとさらに優れています。私はKeyPressKeyDownと、すなわち

Private Sub TextBox1_KeyDown(KeyCode As Integer, Shift As Integer) 
    If KeyCode = vbKeyReturn Then 
     MsgBox "hello" 
    End If 
End Sub 

を試してみましたが、そのコードは私のコンパイルエラーを与えた:

Procedure declaration does not match description of event or procedure having the same name.

答えて

0

おそらく、LostFocusイベントがより有用であろう。 TextBox1がオンの場合Slide 1:

Private Sub TextBox1_LostFocus() 
    MsgBox ActivePresentation.Slides(1).Shapes("TextBox1").OLEFormat.Object.Text 
End Sub 
+0

コードを貼り付け、正しいスライド番号を更新しました。コードでは複数の文字を入力することができましたが、プレゼンテーションの未使用領域をクリックしたときにのみEnterキーを押しても実行されませんでした(コマンドボタンをクリックしてデータ)とEscを押したときにEscキーがメッセージボックスを表示した後にプレゼンテーションを閉じました。 – Rgremer

+0

LostFocusイベントは、テキストボックスをクリックするまで発生しません。そして、あなたがそれを押すと、テキストボックスはEnterキーを「呑み込む」ようです。変更イベントは発生しないので、どのようにトラップできるのか分かりません。 –

関連する問題