マクロでのスタイルの保存(Microsoft Word)
Rajは、スタイルをWordマクロに保存し、後で「サニティチェック」の一部として実行して、テンプレートスタイルのみがドキュメントに適用され、他には何も適用されないことを確認できるかどうか疑問に思います。
この質問への答えは、実際にはあなたが推測するよりもはるかに複雑です。 Rajが、ユーザーが直接(新しいスタイルを作成することによって)または間接的に(他のソースからのコピーアンドペーストを使用して)スタイルを追加するのを阻止したい場合は、実際に試すことができるいくつかのことがあります。これらは次のWordTipでカバーされています:
http://wordribbon.tips.net/T012698
そのヒントで説明されていることを超えて、ドキュメントで使用されているスタイルがスタイルの「承認済みリスト」にあるかどうかを確認するだけであれば、比較的簡単な作業です。スタイルの名前は、文字列配列に簡単に格納して、ドキュメントの各段落に適用されているスタイルと比較できます。次のような構造を使用して、ドキュメント内の段落をステップ実行し、スタイルが承認済みリストに含まれているかどうかを調べることができます。
sTemp = "" For Each p In ActiveDocument.Content.Paragraphs sPStyle = p.Style bNotFound = True For J = 1 To iNumValid If sPStyle = sValidStyles(J) Then bNotFound = False Next J If bNotFound Then sTemp = sTemp & sPStyle & vbCrLf End If Next p
この例は単なるコードスニペットです。完全なマクロでは、すべての有効なスタイル名と、配列要素の数であるiNumValidを含む文字列配列(sValidStyles)を設定する必要があります。スニペットが完成すると、sTemp変数には、sValidStyles配列にないドキュメントで使用されているすべてのスタイルの名前が含まれます。 (無効なスタイルがドキュメントに複数回表示される場合、sTempに複数回表示されます。)
スタイルが変更されているかどうかを確認するために実際に「サニティチェック」を実行するマクロを探している場合、問題は天文学的に複雑です。スタイルにはスコアまたは数百の可能な設定があり、有効なスタイルごとにそれらの設定をそれぞれ保存するのは悪夢です。そのような状況では、上記にリンクされたヒントで詳述されている保護ベースのアプローチを使用することをお勧めします。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(12959)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice365のWordに適用されます。