チェックボックスを使用してテキストを追加して削除する(ActiveXコントロール)
こんにちは、
チェックボックス(ActiveXコントロール)を使用して、ブックマークの範囲内の特定のテキストを挿入(チェックしない)を挿入(チェック解除)します.
テキストを挿入することは難しくありませんでしたが、(チェックボックスがオフの場合)を削除する方法(チェックボックスがオフの場合)挿入されたテキスト?
これをやるための簡単な方法があることを願っています.
プライベートサブCHBTEST_CLICK()
chbtest.value= trueの場合、
薄型テスト範囲
test= activeDocument.bookmarks( "bkmtest")を設定します.範囲
test.text= "成功しました!"
else
.........?
の場合は終わります
終了SUB
-
私の2番目のステップは、スクリプト内のテキストの代わりに自己製のビルディングブロックを使用することです.VBAから特定のビルディングブロックに到達できますか?私はまた、コンピュータ上のMicrosoftフォルダの代わりにビルディングブロックがドキュメントに追加されます.
誰かが私に私に説明することができますか?
サンダー
返信リスト(回答:6)
2枚のピースの場合、ビルディングブロックは文書に保存されていないため、テンプレートに保存されます.しかし、コードはこのようなものになるでしょう:
プライベートサブCHBTEST_CLICK()
薄型範囲
ActiveDocument.bookmarks.exists( "bkmtest")が
orng= activeDocument.bookmarks( "bkmtest").範囲
ChbTestの場合
orng= activeDocument.AttachedTemplate.BuildingBlockTypes(wdtypeautotext).業種(「シグネチャ」)._
ビルブロック( "John Hancock")挿入(= orng、richtext:= true)
orng.text= vbnullString
の場合は終了
ActiveDocument.bookmarks.add "bkmtest"、orng
の場合は終了
lbl_exit:
終了SUB
応答4# ->にスキップ3 #Sander9こんにちはグレッグ、
私は別の質問があります.
私は3つの異なる方法で建物ブロックを保存することができます:
- normal.dotm
- ビルディングブロック
- 個人保存テンプレート
コードを使用する場合、私は通常のものとして保存されているビルディングブロックにのみ到達できます.dotm.テンプレートにのみ接続できるように、ビルディングブロックは文書に接続されていません.だから私はビルディングブロックを個人的に保存されたものとして保存する必要があると思います
テンプレート.私はこれを試してみましたが、コードはもう機能していません.コードを書き換える必要はありますか?サンダー
応答3# ->にスキップ1 #GregMaxあなたの質問:
の目的は何ですか:lbl_exit:
SUB
を終了しますチャールズが正しく述べたように、他の人の個人的なスタイル(明らかにチャールズや他の人が採用している)は、投稿されたマクロでは、本当に役に立ちません.スタイルが常に最終サブ行にプロシージャを実行することを回避する例外を指定していません.
これは、Lable "LBL_EXIT:"が使用されている例です.定義されたBBが存在しない場合、エラーが発生します.エラーは扱われ、実行はlbl_exit:label.
プライベートサブCHBTEST_CLICK()
薄型範囲
erry_bb
ActiveDocument.bookmarks.exists( "bkmtest")が
orng= activeDocument.bookmarks( "bkmtest").範囲
ChbTestの場合
orng= activeDocument.AttachedTemplate.BuildingBlockTypes(wdtypeautotext).業種(「シグネチャ」)._
ビルブロック( "John Hancock")挿入(= orng、richtext:= true)
orng.text= vbnullString
の場合は終了 ActiveDocument.bookmarks.add "bkmtest"、orng
の場合は終了 lbl_exit:
err_bb:
MsgBox "BuildingBlockの署名は存在しません"、vbinformation + vbokonly、 "no bbが見つかりました"
LBL_EXITを再開する
終了SUB今、他の質問と私の習慣のために.BuildingBlockを使用することは、建物ブロックを保持しているテンプレートにアクセスすることになる文書のユーザーの中でのみ、またはユーザーのユーザーのユーザーのユーザーを使用しているだけです.明らかにそれはあなたのものではありません
通常のテンプレートまたはあなたの建物ブロックテンプレート.私の意見ではそれ自体では別の道を進める理由です.ActiveXコントロールとブックマークを使用している理由は、コンテンツコントロールの可用性を考慮して少し日付です.すべての潜在的な文書ユーザーがWord 2013以上を使用する場合、これは私がそれをする方法です.
1.マイドキュメントでは、タグ "chbtest"
を使ってチェックボックスのコンテンツコントロールを入力します.2.私は2つのRichTextコントロールを最初にタグしますが、「シグネチャ」タグと2番目にタグ "chktreue"
3.My CCツールの使用インストラメータ機能を使用すると、ドキュメントのコンテンツコントロールをマッピングします.
4.変数コンテンツを追加します.例えば、CCタグ付きChbtrue
にJohn Hancockの署名グラフィックを使用しました.5.CCタグ付きCHBTRUE
を削除します.6.次のコードをドキュメントのこの文書モジュールに追加します.
プライベートサブDocument_ContentControlBeForeContentUpdate(ContentControlとしてのByVal ContentControl、文字列としてのコンテンツ)
CustomXMLPartとして薄暗いOCXP
ContentControl
.tag= "chbtest"
の場合 ocxp=.xmlmapping.customxmlpartを設定する
の場合 OCXP.SELECTSINGLENODE( "/NS0:CC_MAP_ROOT [1]/NS0:Signature [1]").text= _
OCXP.SELECTSINGLENODE( "/NS0:CC_MAP_ROOT [1]/NS0:CHKTRUE [1]").テキスト
OCXP.SELECTINGINGLENODE( "/NS0:CC_MAP_ROOT [1]/NS0:署名[1]").text= "" ""
の場合は終了
の場合は終了
lbl_exit:
ocxp= nother
終了SUBこのように、すべてが文書自体にうまくいっぱいになっています.保存されたコンテンツを編集する必要がある場合は、CCツールアドインを使用してRichText CCをCHBTextノードに作成してマッピングできます.変更を変更して削除します
CC.
応答3# ->にスキップ2 #Charles最初の質問:このマクロには何もしません.
Gregは、マクロ全体を実行しないが、画面を更新するように特定のコマンドを処理することができるようにすることがよくあります.これは私が採用した習慣です.
これがコードを使用してビルディングブロックを挿入する上のマリの素材です:
自動テキストエントリまたはビルディングブロックを招くようにVBAを使用する
これは私のビルディングブロックを保存する場所についての私の考えです:
それらの考えの下線:私はそれらを通常のテンプレートにも構築ブロック.dotxテンプレートに保存しないことをお勧めします.どちらかに入れることをお勧めします ドキュメントテンプレート またはA. グローバルテンプレート 彼らがグローバルに使用されるかどうか、またはテンプレートに基づいて文書内で使用されるべきかどうかによって.
私の経験彼はめったに、そして通常最悪の時間で、厄介なことが通常のテンプレートとビルディングブロックのテンプレートに起こる.さらに、それらをカスタムテンプレートに入れると、それらをはるかに共有可能で転送可能にします.
応答4# ->にスキップ6 #Sander9私は残っている疑問があるだけの質問しかありません.
使用するスクリプトの最後に:
lbl_exit:
を終了します
SUBこれは正確に何をしますか?追加または削除した場合は違いはありません.
サンダー
あなたがブックマーク範囲にテキストを書くときはいつでも、あなたがそれを再現する必要があるようにブックマークを破壊してください:
プライベートサブCHBTEST_CLICK()
薄型範囲
ActiveDocument.bookmarks.exists( "bkmtest")が
orng= activeDocument.bookmarks( "bkmtest").範囲
ChbTestの場合
orng.text= "成功しました!"
orng.text= vbnullString
ActiveDocument.bookMarks.add "bkmtest"、orng
の場合は終了
lbl_exit:
終了SUB
関連質問
- DocVariableフィールドがTextBox内に含まれている場合、VBAを使用してString値を使用してDocVariableを作成する方法
- キーバインディングリスト異常
- 単語はテーブルの細胞境界の近くのテキストを書かせない
- マクロを使用してWordテーブルの最後の3行を削除する
- Office:自動修正
- Mac 2019 Localの誤りを保存します
- MacのためのWordApplicationは開かないでしょう
- Microsoft Word 2019は、作業が不可能になるまで頻繁に応答しないようにします.windows のMicrosoft Office全体を更新し、他のスレッドの指示に従って失われていません.次はどうする?
- 単語フィールドコードSLYTEREFは中文のテキストをオフにします
- Microsoft Officeのエラーメッセージ