Microsoft.Office.Interop.Word名前空間を使用して、Word文書にマクロが含まれているかどうかとマクロが含まれているかどうかを抽出する必要があります。この名前空間のMSDNドキュメントには、他の.Netクラスのドキュメントと比較して多くの情報が記載されていません。この名前空間に関する詳細情報(例、完全なドキュメントなど)はどこで入手できますか。私はすでにグーグルとSOで検索しましたが、多くの情報はありませんでした。
5 に答える
良いドキュメントはありません。唯一のリソースはMSDN(静かに悪い)といくつかのブログです。たぶんあなたはここでいくつかの情報を見つけることができます:http://blogs.msdn.com/mshneer/
正解は、Document.HasVBProjectプロパティを確認することです。
備考欄からの引用:「このプロパティは、ドキュメントをマクロ対応のファイル形式で保存する必要があるかどうかをプログラムで判断するのに最も役立ちます。別の形式で保存すると、ドキュメントに含まれるマクロとコードプロジェクトが失われる可能性があります。」
Office 2007 / Office 2010の詳細については、次の場所を参照してください:http: //msdn.microsoft.com/en-us/library/dd925808.aspx
Microsoft.Vbe.Interop
VBAの名前空間です。(VBEはVisual Basic for Application Extensibility 5.3です。)検索に役立つキーワードはVBProject
、、、VBComponent
およびCodeModule
です。
MSDN Search for VBProjectを使用すると、開始できます。 http://social.msdn.microsoft.com/Search/en-US?query=VBProject&ac=8。
次の記事はVBAに関するものですが、簡単に変換できます。WD2000: http://support.microsoft.com/kb/262961でマクロ名とプロシージャ名を返すサンプルマクロ。
ドキュメントの大部分は、MicrosoftWordに同梱されているVBAヘルプファイルにあります。MicrosoftWord2003の場合は、ファイルVBAWD10.CHMを探してください。Microsoft Office Visual Basicリファレンス(VBAOF11.CHM)も確認してください。
上記の10と11は、WordとOfficeのバージョン番号です。したがって、マイレージは、インストールしたWordのバージョンによって異なります。また、名前はWordのすべてのバージョンで一貫しているわけではないため、すべてのVBA * .CHMを検索すると、必要なドキュメントのほとんどが見つかる可能性があります。
これらは、WordAPIに関するほとんどの質問に答えます。
開いているドキュメントまたはテンプレートでマクロのリストを見つける明確な方法がわかりませんが...方法が見つかった場合は、この回答にコメントを追加してください。知りたいと思います。
(Wordの相互運用機能を使用すると、すべての呼び出しで例外がスローされる可能性があることに注意してください。Wordでモーダルダイアログボックスが開いている場合、たとえば、例外が発生します。それに応じてプログラムしてください)。