2016-12-23 2 views
0

私は最近、Manipulating content in Microsoft Word with VBScript or VBAというトピックを投稿し、私の問題を解決するために多大な助力を受けました。この話題に拍車をかけて、私は学んだものを使い、新しい仕事を組み込むことができる必要があります。Microsoft Wordでvbscriptのチェックボックスを有効にする

私は上記のリンクに似たドキュメントを持っています。しかし、唯一の違いは、チェックボックスが使用されており、コードはユーザーの選択に応じて選択/選択解除する必要があることです。

Sub Check_Document() 

    objWord.Visible = True 
    Set objDoc = objWord.Documents.Open(UserProfile & "\Desktop\lettermiscreason - original.docx") 

    Set objRange = objDoc.Bookmarks("TodaysDate").Range 
    objRange.Text = TodaysDate 
    Set objRange = objDoc.Bookmarks("ProvName").Range 
    objRange.Text = ProvName 
    Set objRange = objDoc.Bookmarks("ProvAddress").Range 
    objRange.Text = ProvAddress 
    Set objRange = objDoc.Bookmarks("ProvCity").Range 
    objRange.Text = ProvCity 
    Set objRange = objDoc.Bookmarks("ProvState").Range 
    objRange.Text = ProvState 
    Set objRange = objDoc.Bookmarks("ProvZip").Range 
    objRange.Text = ProvZip 
    Set objRange = objDoc.Bookmarks("Check6").Range 
    If objRange.Value = False Then 
     objRange.Value = True 
    End If 
    Set objRange = objDoc.Bookmarks("Check5").Range 
    If objRange.Value = True Then 
     objRange.Value = False 
    End If 
    Set objRange = objDoc.Bookmarks("ProcInit").Range 
    objRange.Text = ProcInit 

End Sub 

Check6は、私が選択したいとCheck5は私が選択を解除したいボックスで、チェックボックスである:ここで私はこれまで持っているコードです。コードが置かれると、エラーが発生します:Microsoft VBScript runtime error: Object doesn't support this property or method: 'objRange.Value'。私がデータを入力するのに使った残りの部分を見ると、それらはブックマークとして表示されます。助言がありますか? objRange以外のものを使用する必要がありますか、それとも私は.Value以外のものを使用できますか?

+0

あなたの質問に答える前に[このリンク](https://msdn.microsoft.com/de-de/library/office/ff839720.aspx)を投稿できます – LotPings

+0

私はそれが同じリンクIだったと思います見た。私は正確なコーディングを試して、VBScriptとは違うほど多くのVBAが動作しないことに気付きました。いくつかの変更の後、私は完璧に動作するようになった。リンクを探す時間をとっていただきありがとうございます。私が自分でそれを考え出すことができなかったなら、あなたの研究は大きな助けになっていたでしょう。 – Lou

答えて

1

HTMLフォームの検証から覚えているいくつかのランダムなアイデアを試した後、私は解決策を見つけました。私は文書オブジェクトのVBA FormFieldsを使用し、各チェックボックスのブックマークを使用して値を見つけて変更しました。

Sub Check_Document() 

    objWord.Visible = True 
    Set objDoc = objWord.Documents.Open(UserProfile & "\Desktop\lettermiscreason - original.docx") 
    ' Created a FormFields object 
    Set objFrmFld = objDoc.FormFields 

    Set objRange = objDoc.Bookmarks("TodaysDate").Range 
    objRange.Text = TodaysDate 
    Set objRange = objDoc.Bookmarks("ProvName").Range 
    objRange.Text = ProvName 
    Set objRange = objDoc.Bookmarks("ProvAddress").Range 
    objRange.Text = ProvAddress 
    Set objRange = objDoc.Bookmarks("ProvCity").Range 
    objRange.Text = ProvCity 
    Set objRange = objDoc.Bookmarks("ProvState").Range 
    objRange.Text = ProvState 
    Set objRange = objDoc.Bookmarks("ProvZip").Range 
    objRange.Text = ProvZip 
    ' Used the FormFields object to change the value from unchecked to checked 
    If objFrmFld("Check6").CheckBox.Value = False Then 
     objFrmFld("Check6").CheckBox.Value = True 
    End If 
    ' Used the FormFields object to change the value from checked to unchecked 
    If objFrmFld("Check5").CheckBox.Value = True Then 
     objFrmFld("Check5").CheckBox.Value = False 
    End If 
    Set objRange = objDoc.Bookmarks("ProcInit").Range 
    objRange.Text = ProcInit 

End Sub 

私はこれが誰かを助けてくれることを願っています。質問をする前に少し余分な研究をして解決策を出さないことをお詫び申し上げます。

関連する問題