2017-07-21 7 views
0

文書の途中にチェックボックスのコンテンツコントロールがあるWordテンプレートがあります。このチェックボックスをクリックすると、VBAを使用していくつかのコマンドがトリガされます。しかし、以前のプレーンテキストのコンテンツコントロールと日付ピッカーのコンテンツコントロールも、ユーザーのためのテンプレートの記入に役立ちます。これらのボックスを選択すると、「実行時エラー6290 - このプロパティはチェックボックスの内容コントロールでのみ使用可能です」というエラーメッセージが表示され続けます。Microsoft WordでVBAを使用して以前のコンテンツコントロールをどのように無視しますか?

私の質問 - 以前のコンテンツコントロールボックスを無視し、チェックボックスを押したときにのみコードを実行する方法はありますか?現時点では

私のコードは次のようなものになります。

Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl) 
    If (ContentControl.Title = "Checkbox1" And ContentControl.Checked = True) Then 
     *code in here* 
    End If 
End Sub 

をだから、CheckBox1をがチェックされると、コードが唯一のトリガーになるだろうと思うだろう...しかし、以前のテキストと日付フィールドは私にエラーを与えますコード。誰が何が起こっているのか知っていますか?

答えて

0

私は "コンテンツコントロール"やWord VBAに慣れていませんが、Excelでは.OnChangeイベントをコーディングするときにSubに渡されたセルが(1つの)ものであることを確認することが重要ですあなたと一緒に仕事をしたいと思っています。私は同じことがここで真実だと思います。

私の推測では、あなたのエラーはあなたのIf文の

ContentControl.Checked = True 

部分の上にあるので、この試みを与えるされています

Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl) 
    If (ContentControl.Title = "Checkbox1") Then 
     If ContentControl.Checked = True Then 
     *code in here* 
     End IF 
    End If 
End Sub 

つまり、あなたがチェックボックスコントロールを見ていることを確認してくださいボックスがチェックされているかどうかを確認する前にテストしてください。

VBAはないは条件付きショートカットを行いませんので、最初のものはFalseであっても、条件付きAND内のすべての文を評価するために起こっています。

+0

それは意味があり、それは働いた!助けてくれてありがとう。 – beeboy155

+0

歓迎です、@ beeboy155 – FreeMan

関連する問題