MS Word 2007 で VBA を使用してページ要素を定義しますか?
-
24-09-2019 - |
質問
テキストをフィードし、それ自体で好みのレイアウトを形成できるページ要素を作成できるようにしたいと考えています。例えば:
{MACRO DocumentIntro("Introduction to Business Studies", "FP015", "Teachers' Guide")}
これをフィールドとして使用すると、出力は行になり、最初の 2 つの文字列が特定のサイズとフォントで中央揃えになり、別の行が表示され、3 番目の文字列がフォント、サイズ、中央揃えになります。
これは TeX に似ていて、おそらく VBA の範囲を超えていることはわかっていますが、どのようにしてそれが可能になるか知っている人がいたら、教えてください。
編集:
ドキュメントのプロパティの一部として、ある種の一意の区切り文字を使用して必要な情報をキーワードに入力すると、その情報が取り込まれ、情報は各ドキュメントに一意になります。次に、内容が表示される場所にブックマークを置きます。次に、 AutoOpen
そのブックマークに移動し、キーワードから関連性のあるものを取り出し、ブックマークのテキストを適切に形成するマクロ .Selection
.
それは実現可能でしょうか?
解決
コーディング ソリューションとしては、確かに正しい方向に進んでいます。ただし、コードを使用しない簡単な方法があります。これは、Word 2007 のコンテンツ コントロールが構築されたシナリオのタイプであり、フィールド/プロパティを使用してコンテンツ コントロール (CC) にバインドできます。これらの CC はスタイル (中央揃え、太字など) を保持できます。VBA は必要ありません。
最も簡単な方法は、常に設定したい組み込みのドキュメント プロパティを 3 つ選択することです。たとえば、「タイトル」を最初の文字列、「件名」を 2 番目の文字列、「キーワード」を 3 番目の文字列にすることができます。次に、次の場所に行ってください。 入れる リボン、 クイックパーツ, ドキュメントのプロパティ そして、それらを好きなように挿入、配置、フォーマットします。次に、Word のスタート ボタン (オーブのようなもの) に移動し、 準備する 選ぶ プロパティ. 。ここで、たとえば「」と入力できます。ビジネス学入門"、に タイトル ボックスをクリックしてから、何らかの方法で選択を解除します(別のボックスをクリックするなど)。のコンテンツ コントロール タイトル テキストが自動的に入力されます。
これを複数のファイルに使用したい場合は、このファイルを .dotx として作成します (CC の挿入/配置/書式設定後、ドキュメント プロパティのテキストを更新する前)。その後、毎回、新しいファイルごとにこれら 3 つのプロパティを設定するだけで済みます。
他のヒント
まあ、はい、それは実現可能であることが判明しました。
Sub autoopen()
Dim sKeywords As String
sKeywords = ActiveDocument.BuiltInDocumentProperties(4)
ActiveDocument.Bookmarks("foo").Select
Selection.Text = sKeywords
End Sub
さて、私はいくつかやって記入し、それの少なくとも根性しているがあります。