多くのテンプレート参照の更新(Microsoft Word)
何年にもわたって、フィリップの会社は何千ものWord文書を開発してきました。彼らは最近、フィリップの部門の全員のために異なるサーバーとアップグレードされたコンピューターを使用するようにネットワークインフラストラクチャを変更しました。誰かがそれらの既存のドキュメントの1つを開くと、古いインフラストラクチャに存在していたが、使用できなくなったテンプレートを探します。これは、ドキュメントを開くのに長い時間がかかることを意味します。その後、不正なテンプレート参照を変更する可能性があります。フィリップが古いドキュメントをそれぞれ開く必要がある場合、それを行うには何日もかかるため、各ドキュメントを開かなくても、テンプレート参照をより効率的に変更する方法があるかどうか疑問に思います。
これは本当に面倒なことかもしれません—(オフィスでは)もっと悪いことはほとんどありません
コンピュータの画面を見つめるよりも、いくつかのプロセスが終了するのを待ちます。
何が起こっているのかというと、Wordはテンプレートが特定の場所にあると見なし、Windowsにその場所でテンプレートを取得するように要求します。
Windowsは、場所を繰り返し探しながら、忠実に準拠しようとします(そして試行します)。各試行はタイムアウトになり、この無駄な試行に費やされた合計時間は非常に顕著です。
解決策は、マクロを使用してディレクトリ内の各ドキュメントをロードし、そのドキュメントに添付されているテンプレートを変更することです。以下はそのようなマクロの例です:
Sub BatchTemplateChange() Dim sPathToTemplates As String Dim sPathToDocs As String Dim sDoc As String Dim dDoc As Document Dim sNewTemplate As String Dim i As Long On Error Resume Next Application.ScreenUpdating = False sNewTemplate = "normal.dotx" 'new template name sPathToDocs = Options.DefaultFilePath(wdDocumentsPath) & "\" sPathToTemplates = Options.DefaultFilePath(wdUserTemplatesPath) & "\" sDoc = Dir(sPathToDocs & "*.doc") While Len(sDoc) <> 0 Set dDoc = Documents.Open(FileName:=sPathToDocs & sDoc) dDoc.AttachedTemplate = sPathToTemplates & sNewTemplate dDoc.Close wdSaveChanges sDoc = Dir i = i + 1 Wend Application.ScreenUpdating = True MsgBox "Finished: " & i & " documents changed" End Sub
マクロは各ドキュメントをデフォルトのドキュメントの場所にロードしますが、必ずしもロードが高速化されるわけではないことに注意してください。マクロを使用する利点は、マクロの実行を開始して、コンピューターから離れているときにマクロを機能させることができることです。
プログラマティックアプローチの追加のアイデアは、次の記事にあります。これは、一部の読者に役立つ可能性があります。
http://www.edugeek.net/forums/scripts/35199-vba-script-change-word-document-template-location.html
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(11405)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス:
link多くのテンプレート参照を更新する。