web-dev-qa-db-ja.com

Wordのマルチレベルリストの破損したフォントを修正

Word2013で定義されたマルチレベルのリストがあります。

レベル4が破損していて、奇妙に見えます(他のすべてのレベルは問題ありません):

enter image description here (「1.1。レベル4リストアイテム」である必要がありますが、「1.1。」はマスクされているだけです)

「新しいマルチレベルリストの定義」ウィンドウでは、サンプルはすでに奇妙で、テキストボックスの左上隅に小さな線として表示されます(「フォント」の左側のテキストボックスを参照)が、リストのサンプルは問題ないように見えます:

enter image description here

「新しいマルチレベルリストの定義」ウィンドウから「font」プロパティを開くと、フォントサイズが0であることがわかります。

enter image description here

ただし、フォントサイズを修正した後(そして念のためにすべての値を再選択した後)でも、[OK]を押して変更を承認することはできません。また、次のエラーメッセージが表示されるため、[詳細設定]タブに移動しません。

enter image description here

キャンセルを押すだけでウィンドウを閉じることができます。マルチレベルのリストであるため、その一部を簡単に選択して、必要に応じてフォーマットし、フォーマットに一致するようにスタイルを変更することはできません。

私もマクロで試しました:

  • Font.reset助けにはならなかった
  • Font.Sizeは0です。 .Position.Scaling.Spacingはすべて9999999ですが、有効な値(それぞれ、12、0、100、1)に設定しても、何も実行されません(エラーメッセージは表示されませんが、改善も行われません)。

リストスタイル全体を再作成せずにこのフォントを修正するにはどうすればよいですか?

4
Máté Juhász

クイックコンテキスト

  • Wordのようなアプリケーションには、レイアウトや外観などを扱うグローバル設定がたくさんあります。これは、ドキュメントコンテンツ自体の関連する各場所に制御文字を埋め込むことによっては実現されません。むしろ、ユーザーの選択は一元化された設定として保存され、これらはルールに基づいてプログラムでドキュメント全体に適用されます。

  • このアプリケーションは、質問に示されているメニューや設定選択ツールなどの設定を処理するための優れたグラフィカルユーザーインターフェイスを提供します。ただし、それはドキュメントの一部として保存されるものではありません。ソフトウェアは、ドキュメントとともに効率的な方法で保存されている設定値からその表示を生成します。

  • これらのルールを駆動する設定は、ドキュメントのコンテンツとは別に保存されます。これをドキュメントインフラストラクチャと呼びます。

  • 設定はコンパクトな形式で保存できるため、少量の破損は、ドキュメントのさまざまなルールやさまざまな部分に影響を与える可能性があります。ただし、エラーの症状は診断に役立つ場合があります。

診断

メニューに正しい値を入力するだけで修正できる誤ったユーザー設定ではなく、破損を示すいくつかの特性があります。

  • 特に関連する設定のコレクションで、複数の無意味な問題が発生する場合があります。

  • 設定を変更できない、または設定の変更が固執しない。

  • ユーザーインターフェイスでは、プリセット値から選択するか、検証ルールに準拠した値を入力する必要があります。したがって、非準拠の値を手動で入力する方法はありません。この例では、0ポイントのフォントサイズ(リストから選択できない)のようなものが表示されます。数字形式の入力ボックスにあるその記号は、入力したものではありません。さらにわかりやすいのは、それが直接操作または削除できないものであるかどうかです。さらにわかりやすいのは、それが標準のキーボード文字ではない記号であるかどうかです。

破損の修正

  • ドキュメントのコンテンツを直接操作するのではなく、保存されている値の作成された表現を処理しています。したがって、変更できるのはユーザーインターフェイスで許可されているものだけです。ユーザーインターフェイスが破損した値を理解できない場合、それらを直接修正することはできません。

  • ユーザーインターフェイスは、破損を処理しているときに表示される内容に対して論理的に動作しない場合があります。

  • すべての問題が発生しているとは限りません。ユーザーインターフェイスには、プログラムされた実行範囲内で実行できることが表示されます。一部の破損した値は、奇妙なものとして表示される可能性があります。その他は、表示されない、または表示できないものである可能性があります。さらに他のものは何か違うものの遺物かもしれません。したがって、破損の程度を知る方法はありません(何がわからないのかわかりません)。

  • 安全な解決策は、表示された特定の問題のように見えるものを修正しようとするのではなく、クリアしてやり直すことです。

  • ドキュメントインフラストラクチャが個別に保存されているという事実は、修正のメリットになる可能性があります。インフラストラクチャに破損があり、ドキュメントの内容が損なわれていない場合は、インフラストラクチャを交換できる可能性があります。

    破損したものと同じテンプレートを使用して、新しい(空の)ドキュメントを作成します。破損したドキュメントに移動し、ドキュメント全体を選択してコピーします。それを新しいドキュメントに貼り付けます。巨大なドキュメントの場合は、1回のコピー/貼り付けではなく、複数のチャンクでこれを行う必要がある場合があります。

    これにより、作業ドキュメントが得られることがよくあります。すべての設定が新しいドキュメントに転送されたことを確認します。いくつか再入力する必要があるかもしれませんが、少なくとも機能するユーザーインターフェイスがあり、それを実行できるようになります。

4
fixer1234

VBAからのスクリーンショット

非常に簡単な1つの解決策を見つけました。

  • ステップ1:「Ctrl + f11」を押します(このステップはVBAを開くためのものです)
  • ステップ2:「OptionExplicit」を削除します(このステップは重要です。「OptionExplicit」を保持すると、「F5」を押したときにエラーが発生します)
  • ステップ3:ここにコードをコピーして貼り付けます。
Sub ResetFontFormatsForLists()
For Each templ In ActiveDocument.ListTemplates

     For Each lev In templ.ListLevels

          lev.Font.Reset

     Next lev

Next templ
End Sub
  • ステップ4:「F5」を押してコードを実行します。

  • ステップ5:楽しんで笑ってください。

私はこのソースからこれを学びました: https://answers.Microsoft.com/en-us/msoffice/forum/all/Word-2013-multilevel-list-error/c606fc3e-bc30-4590-8e4b-9bfea7312d67

ここに画像の説明を入力してください

2
Anh Chau