テンプレート内の設定の一覧表示(Microsoft Word)
Andyは、テンプレートの設定(マージン、フォント、タブストップなど)を「リスト」する方法があるかどうか疑問に思います。彼はデフォルトへのリセットについて多くの情報を見てきましたが、実際の設定が何であるかを彼に伝えるものは何もありません。彼は、テンプレートを開いてさまざまなアイテムを見るのは不格好で、包括的ではないと述べています。
残念ながら、Wordでこれを行う簡単な方法はありません。主な理由は、テンプレートに保存されている設定の完全なリストがなく、そのような設定の数が非常に多いためです。
最善の方法は、関心のある設定を調べてそれらを表示するマクロを作成することです。
例として、次の一連のマクロについて考えてみます。
Sub TemplateSettings() Dim templatePath As String Dim fleName As String Dim str As String Dim sTemp As String ' Select the template to be opened templatePath = Application.Templates(1).Path fleName = GetTemplateName(templatePath) If fleName = "" Then MsgBox "No template selected" Exit Sub End If Application.Documents.Open (fleName) str = ActiveDocument.Name & vbCr & vbCr sTemp = "Other" Select Case ActiveDocument.Sections(1).PageSetup.PaperSize Case wdPaperLetter sTemp = "Letter" Case wdPaperLegal sTemp = "Legal" Case wdPaperA4 sTemp = "A4" End Select str = str & "Paper size: " & sTemp sTemp = "Landscape" If ActiveDocument.Sections(1).PageSetup.Orientation = wdOrientPortrait Then sTemp = "Portrait" End If str = str & " Orientation: " & sTemp & vbCr str = str & "Margins " & marginsStr & vbCr str = str & vbCr & "User Defined Tab stops " & UserTabStops & vbCr str = str & vbCr & "User defined styles " & userStyles Application.Documents(fleName).Close SaveChanges:=wdDoNotSaveChanges MsgBox str End Sub
Function GetTemplateName(templatePath As String) As String Dim dlg As FileDialog Set dlg = Application.FileDialog( _ FileDialogType:=msoFileDialogFilePicker) With dlg .AllowMultiSelect = False .InitialFileName = templatePath .Filters.Clear .Filters.Add "Templates", "*.dot" .Filters.Add "All files", "." .FilterIndex = 1 .Show If .SelectedItems.Count > 0 Then GetTemplateName = .SelectedItems(1) Else GetTemplateName = "" End If End With Set dlg = Nothing End Function
Function userStyles() As String Dim sty As Style Dim s As String s = "" For Each sty In ActiveDocument.Styles If Not sty.BuiltIn Then s = vbCr & sty.NameLocal & " " & sty.Description End If Next sty userStyles = s End Function
Function UserTabStops() As String Dim s As String Dim tbStop As TabStop Dim alg alg = Array("Left", "Center", "Right", "Decimal", "Bar", "?", "List") s = "" For Each tbStop In ActiveDocument.Paragraphs(1).TabStops s = s & vbCr & ptConvert(tbStop.Position) & _ " Alignment: " & alg(tbStop.Alignment) Next tbStop UserTabStops = s End Function
Function marginsStr() As String With ActiveDocument marginsStr = _ "Left: " & ptConvert(.PageSetup.LeftMargin) & _ ", Right: " & ptConvert(.PageSetup.RightMargin) & _ ", Top: " & ptConvert(.PageSetup.TopMargin) & _ ", Bottom: " & ptConvert(.PageSetup.BottomMargin) End With End Function
Function ptConvert(p As Single) As String ptConvert = Format(PointsToInches(p), "###.##") ' use the following line if you want dimensions in centimeters 'ptConvert = Format(PointsToCentimeters(p), "###.##") End Function
開始する主なマクロはTemplateSettingsです。このマクロは、次に、リスト内の他の関数を呼び出します。テンプレート内のより一般的な設定のいくつかを取得し(もちろん、テンプレートを指定できます)、それらの設定をメッセージボックスに表示します。
具体的には、テンプレートの名前、用紙サイズ、ページの向き、余白、タブストップ(テンプレートの最初の段落のみ)、およびユーザー定義のスタイルが表示されます。
明らかに、抽出して表示できる設定は他にもたくさんあります。たとえば、ユーザー定義のスタイル名のリストだけでなく、各スタイルの特性を知りたい場合があります。または、組み込みスタイルのフォーマットがデフォルトのフォーマットとどのように異なるかを知りたい場合があります。これらのオプションだけでは、マクロが非常に複雑になります。
(各スタイルには数十の異なるフォーマット設定があり、組み込みスタイルの「デフォルトのフォーマット」は通常のテンプレートに保存されているものによって定義されることを考慮してください。)このような追加を含めるには、マクロを変更するだけで済みます。必要な情報をコンパイルします。
また、ここで紹介するマクロスイートは、その長さにもかかわらず、シンプルになるように設計されていることに注意してください。抽出されたすべての設定を文字列に入れ、その文字列をメッセージボックスに表示するだけです。表示しているテンプレートに多数のユーザー定義スタイルがある場合、文字列が非常に長くなる可能性があります。最終的に1,024文字より長くなると、MsgBox関数はその長さまでの文字列しか表示できないため、エラーが発生します。文字列が長くなることが予想される場合は、複数のメッセージボックスの「チャンク」に表示するか、後で調べることができるように文字列をテキストファイルに書き出すだけです。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(10117)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ:
linkテンプレート内の設定の一覧表示。