2016-03-20 14 views
0

一般的な名前のActiveXラジオボタンを作成し、作成したラジオボタンの名前を変更して特定の番号を持つようにするWord文書で、フォーム内のその位置に表示されます。WordでActiveXコンポーネント名のプロパティを動的に変更する

これまでのところ、私はボタンを作成できるので、コードを書くためのすべてのコンポーネントがあると思います。 VBAを使用してボタンを作成し、ラジオボタンが定義されたラジオボタンを持つクイックパートをインポートし、そのラジオボタンのnameプロパティをたとえばradioButton1に変更することができます。私が取り組んでいる問題は、コードでは一般的なradioButtonXの名前を持つクイック部分を挿入し、radioButtonXが存在しないため、ラジオボタンの名前を変更できないということです。しかし、radioButtonXを挿入した後、コードの2番目の部分を手動で実行することができます。ラジオボタンの名前を変更して、私が2つのステップで探している最終結果を得ることができます。

私は昨年自分で教えられたVBAスクリプタですので、コーディングの専門家からは遠いです。私がこれまでに取った戦略のいくつかは、にした:待機中に入れ

  • (スクリプトを一時停止すると、新しいラジオボタンを認識するためのスクリプトの時間を与えるだろうと考えて)別の潜水艦にコードを分離しました1つのサブボタンを作成してラジオボタンを作成し、サブを呼び出して名前を変更します(これによりVBAが更新されることが期待されます)
  • コードを別々のモジュールに分けてラジオボタンを作成し、これによりVBAが更新されます)

コードの実行中に挿入した新しいラジオボタンをVBAで認識できるようにするためのアドバイス、戦略、サンプルコードが必要でした。私が持っていたもう一つの考えは、VBAに変数の知識をリフレッシュさせるコマンドが存在するかもしれないが、この時点までの私のウェブ検索では何も見つかりませんでした。

+2

あなたのコードを見ることなくこれに答えることは非常に難しいでしょう。質問を編集して(具体的には、ラジオボタンを作成して追加する部分)、それを含めることができますか? – Ambie

答えて

0

私が作業していたコードを単純化し、私が要求していた機能を実行するコードを抜き出しました。より簡単なコードを実行することは成功し、以下にリストされています。

Private Sub AddRadioButton() 
    Selection.TypeText Text:="TestRadioButton" 
    Selection.Range.InsertAutoText 
    ActiveWindow.View.ShowXMLMarkup = wdToggle 

    ChangeButtonName 
End Sub 

Private Sub ChangeButtonName() 
    ThisDocument.radioButtonX.Name = "radioButton1" 
End Sub 

このスクリプトを使用するには、クイックパートまたはTestRadioButtonという名前のラジオボタンを作成する必要があります。私は今、根本的な問題は、このコードが出てくるスクリプトが複数の汎用ラジオボタンを使っているので、動作していないように見えるタイミングを処理する必要があると思うので、実行中のスクリプトは新しいラジオボタンを認識しません走っている間

関連する問題