Word 2013 と 2010 で操作しているので、どちらでも動作するコードを使用できます。レシピを追跡するためにワード文書を作成しようとしています。最も基本的なこととして、見出しに基づいて更新される TOC が必要です。また、必要なカテゴリ (例: 前菜、ドリンク、アントレなど) をアルファベット順に並べたいと考えています。各カテゴリの下にテーブルがあります。各レシピは、名前、指示、メモ、タグ、場合によっては写真を含むテーブルを取得します。2 番目のセルには、レシピに必要な各材料の量と名前を含む別の 2 列のテーブルが含まれています。
これまでのところすべてが揃っているので、新しいカテゴリとレシピの追加を自動化したいと考えています。現在、カテゴリを見つけてから、下にスクロールして名前がアルファベット順に表示されている場所を見つけ、作成した簡単な表を挿入する必要があります。次に、情報を入力します。
各カテゴリ名でドキュメントを検索し、その前後にスペースを入れて新しいカテゴリを挿入できるようにしたいと考えています。すべての間にスペースがないと、テーブルに問題が発生することがわかりました。触れているものをすべてテーブルに引き込み、それらをマージしようとします。
バックストーリーを提供したかったので、最終的にどこに行くのかがわかり、必要なものにより適したヘルプを提供できます. 新しいカテゴリを追加できるようになったら、vba を使用して、各テーブルの最初のセルにある名前のアルファベット順に各テーブルを整理する予定です。また、並べ替えを追加するときにも役立ちます。最終的には、ある人のレシピだけを表示したり、自分のよく使うレシピを表示したりと、並べ替えができるようにしたいです。次に、他のすべてを非表示にするか、これらだけで新しいドキュメントを作成します。助けてくれてありがとう。以下に、最近試したコードを掲載します。この同じコードの他のいくつかのバリエーションを試してみましたが、「予想されるステートメントの終わり」が得られ続けます。他のバリエーションを試したときに他のエラーが発生しましたが、これは私が自分で思いつくことができる最高のものです.
Private Sub UserForm_Initialize()
For Each cat In ActiveDocument.Styles = "Heading 1"
lstCat.AddItem (cat)
Next
End Sub
テストとして使用している frmAddCategory というフォームがあります。スタイル見出し1のすべてのカテゴリを表示するリストボックスlstCatを作成する予定でした。新しいものを入力するtxtAddというテキストボックスと、それをフォームに追加するcmdAddボタンがあります。
編集: アウトライン ビュー モードについて知った後、マクロ レコーダーをいじっています。「見出し1」レベルのみを表示するように設定し、付録や参照を選択せずに、必要なものを選択しました。次に、[ホーム] タブに移動し、段落をアルファベットの昇順で並べ替えました。VBAで実行するために使用できると思われるコードをいくつか入手しました。ただし、見出し1で最後の2つを選択したくないため、完全な修正ではありません。各見出し1の下のテーブルを手動で選択しても機能しますが、前後の間隔を設定できません。見栄えと編集の目的で、各見出しとその下の表の間に 1 つか 2 つのスペースを入れたいと思います。
また、誰かが私の質問に否定的な評価を付けようとしている場合は、説明するコメントを投稿してください. フォーラムに関するよくある質問と私が見た他の質問からわかる限り、それはよく考えられた質問です。明確なタイトル、問題の適切な説明、コード例、調査。そのため、私が何か間違ったことをしている場合は、修正できるようにお知らせください。