ウラジミールは、ドキュメントのファイル名をページのヘッダーに入れることができることを知っています。ただし、彼が望んでいるのは、ファイル名の最後の5文字(ファイル名拡張子を除く)のみをヘッダーに表示することです。彼はその仕事を成し遂げるための最良の方法を模索している。

これを行う唯一の方法は、マクロを使用することです。このタスクを実行するための組み込み機能はWordにはありません。マクロは、ファイル名を決定し、必要な文字を取得してから、ヘッダーに詰め込む必要があります。しかし、とても単純に見えるかもしれない何かに潜在的な合併症があります。たとえば、ドキュメントが保存されておらず、ファイル名がまだない場合はどうなりますか?ドキュメントが保存されているが、ファイル名の文字数が5文字未満の場合はどうなりますか?

ヘッダーにすでに何かがある場合、マクロは何をすべきですか?

ユーザーがヘッダーを表示しないビューでドキュメントを見ている場合はどうすればよいですか?

このような質問に対処するには、マクロはいくつかの仮定を行う必要があります。

この例では、マクロは既存のヘッダーをファイル名の目的の部分に置き換えるだけでよいと想定します。さらに、マクロは表示モードを印刷レイアウトビューに切り替えることができるため、ヘッダーを簡単に操作できます。結果は次のとおりです:

Sub PartFilenameInHeader()

Dim sName As String     Dim J As Long

sName = ActiveDocument.Name     J = InStrRev(sName, ".")

If J > 0 Then         sName = Left(sName, J - 1)

If Len(sName) > 5 Then             sName = Right(sName, 5)

End If

If ActiveWindow.View.SplitSpecial <> wdPaneNone Then             ActiveWindow.Panes(2).Close         End If         If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _           ActivePane.View.Type = wdOutlineView Then             ActiveWindow.ActivePane.View.Type = wdPrintView         End If         ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader         Selection.WholeStory         Selection.Delete         Selection.TypeText Text:=sName         ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument     Else         MsgBox "Document has no filename extension."

End If End Sub

マクロは最初に、ドキュメントに実際のファイル名があることを確認します(ActiveDocumentオブジェクトの.Nameプロパティから)。その場合、ファイル名から5文字(またはそれ以下)の文字を取得します。複数のペインが開いていないこと、およびドキュメントが印刷レイアウトビューにあることを確認します。次に、現在ヘッダーにあるものを選択し、ファイル名から目的の文字に置き換えます。

ドキュメントを保存した後にマクロを1回実行し、別のファイル名を使用してドキュメントを保存した場合はもう一度実行する必要があることを理解してください。

注:

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

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

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(13316)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice365のWordに適用されます。