カスタムドキュメントプロパティは、ドキュメントに関連付けられている一意の情報を保存するための優れた方法です。たとえば、会社が割り当てたドキュメント番号があり、ドキュメントと一緒に保存する必要がある場合があります。カスタムプロパティは、この目的のために非常にうまく法案に適合します。

カスタムプロパティをドキュメントに追加すると、あるドキュメントから別のドキュメントにそれらをコピーする簡単な方法があるかどうか疑問に思うかもしれません。

残念ながら、これを行う方法はありません。 (私の見積もりでは、この機能はオーガナイザーにすばらしい追加を行います。)ただし、コピーを実行するマクロを作成することはできます。次のマクロはまさにそれを行います:

Sub CopyDocProps()

Dim dp() As DocumentProperty     Dim CustomPropCount As Integer     Dim i As Integer     Dim intResponse As Integer

If Windows.Count > 2 Then         MsgBox "There are more than two windows. Please " & _           "close the others and re-run the macro.", , _           "Too many windows"

Exit Sub     End If

On Error GoTo Err_Handler

intResponse = MsgBox("Are you currently in the source document?", _       vbYesNoCancel, "Copy Custom Properties")



If intResponse = vbNo Then Application.Run MacroName:="NextWindow"



CustomPropCount = ActiveDocument.CustomDocumentProperties.Count     ReDim dp(1 To CustomPropCount)



For i = 1 To CustomPropCount         Set dp(i) = ActiveDocument.CustomDocumentProperties(i)

Next i

Application.Run MacroName:="NextWindow"



For i = 1 To CustomPropCount         If dp(i).LinkToContent = True Then             ActiveDocument.CustomDocumentProperties.Add _               Name:=dp(i).Name, _               LinkToContent:=True, _               Value:=dp(i).Value, _               Type:=dp(i).Type, _               LinkSource:=dp(i).LinkSource         Else             ActiveDocument.CustomDocumentProperties.Add _               Name:=dp(i).Name, _               LinkToContent:=False, _               Value:=dp(i).Value, _               Type:=dp(i).Type         End If     Next i

MsgBox "The properties have been copied."

Exit Sub

Err_Handler:

' if Word raises an error, then allow the user     ' to update the custom document property          intResponse = MsgBox("The custom document property (" & _       dp(i).Name & ") already exists." & vbCrLf & vbCrLf & _       "Do you want to update the value?", vbYesNoCancel, _       "Copy Custom Properties")



Select Case Response         Case vbCancel             End         Case vbYes             ActiveDocument.CustomDocumentProperties(dp(i).Name).Value _               = dp(i).Value             Resume Next         Case vbNo             Resume Next     End Select End Sub

このコードはカスタムプロパティをコピーする方法の例ですが、防弾ではありません。たとえば、ソースドキュメントに実際にカスタムプロパティがあるかどうかはチェックされません。あることを前提としています。ただし、このようなコーディングは簡単に追加できます。

マクロを使用するには、ソースドキュメントとターゲットドキュメントのみを開いていることと、ドキュメントごとに1つのウィンドウのみを開いていることを確認してください。マクロが終了したら、ターゲットドキュメントを保存する必要があります。

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(1340)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ: