WordVBA

Document.SaveAs2メソッドでドキュメントを量産する(Word)

[Document].SaveAs2メソッドでドキュメントを量産する(Word) 同じ内容のドキュメントを、名前だけ変えて量産したい。 準備 まず、元になるドキュメント(笑)を準備する。 こいつを、ファイル名を変えて別のフォルダに保存する。 フォルダ構成は、 こんな…

段落の末尾に文字列を追加する(Word)

段落の末尾に文字列を追加する(Word) 単なる個人的な覚え書き。 段落の末尾に文字列を追加するぐらい、簡単にできると思っていたが、意外に苦戦したので、記録として残しておく。 手っ取り早く結論だけ知りたい方はコチラ以降をどうぞ。 このようなドキュ…

VBAでRangeオブジェクトの場所に連番フィールドを挿入する(Word)

VBAでRangeオブジェクトの場所に連番フィールドを挿入する(Word) ちょっとした覚書。 Fields.Addメソッドでフィールド追加 文書内にフィールドを追加するには、Fields.Addメソッドを使う。(参考) Fields.Addメソッドには、引数が四つ。 Range Type Text …

下線(傍線)を施した部分のRangeオブジェクトを取得するFunction(Word)

下線(傍線)を施した部分のRangeオブジェクトを取得するFunction(Word) なんとなく、役所広司ばりにチャチャっと作ってみた。 ソースコード リスト1 Public Function GetNextUnderlinedRange( _ Optional ByVal a_LineStyle As WdUnderline _ = wdUnderl…

テキストボックス挿入の自動化(Word)

テキストボックス挿入の自動化(Word) 表題のとおり、Wordの文書内にテキストボックスを挿入する作業を自動化したくなったので、やってみた。 きっかけとお題 きっかけ 文字ばっかりのPowerPointスライドを図として挿入するのに、画像で入れてしまったら、…

【意味】Paragraphオブジェクトの謎挙動【不明】(Word)

【意味】Paragraphオブジェクトの謎挙動【不明】 WordのVBAで、ParagraphオブジェクトのRange.Textプロパティを書き換えたら、わけのわからないことが起こったので報告。 もとの文書 もとのWord文書は、 このとおり。何の変哲もない、至ってフツーのドキュメ…

VBAで文書にインライン画像を挿入する(Word)

VBAで文書に画像を挿入するときの注意 最近、Wordでマニュアルとか手順書の類を作成することがやたら増えた。 PDF配布を前提とすると、画像をふんだんに盛り込むことができるので、非常に良いのだが、当然画像の挿入が非常にめんどくさくなってくる。 そこで…

VBAで段落前後のスペースを操作する(Word)

VBAで段落前後のスペースを操作する(Word) 軽くハマったので報告。 何がしたかったか Googleフォームで集めたアンケート結果の自由記述の部分をWordに移して整形したかった。 ただずらずらと並べただけだと読みづらいので、一人分づつ記述の間にスペースを…

挿入した画像に図表番号を挿入するマクロ(Word)

文書に挿入した画像にマクロで図表番号を付ける(Word) 最近、やたらマニュアルの類を作成している。 スクリーンショット等の画像を貼り付けた文書を作成することがやたら多くなったのだが、いちいち図表番号を入れるのが面倒になってきた。 ……となると、当…

画像に枠線を施すマクロの書き換え(Word)

画像に枠線を施すマクロの書き換え 前回 akashi-keirin.hatenablog.com 枠線を消すマクロで、[InlineShape].Lineプロパティ(=LineFormatオブジェクト)を用いたので、枠線を施す方も[InlineShape].Lineプロパティを用いる方法に書き換える。 akashi-keirin…

画像の囲み線を消すマクロ(Word)

画像の囲み線を消すマクロ(Word) 前回 akashi-keirin.hatenablog.com の最後のところで、 逆に、画像に施した枠線を除去するマクロの書き方がわからない。 誰か知っている人がいたら教えろ教えてください。 などと言っていたが、とりあえずやり方はわかっ…

印刷マクロでちょっとハマる(Word)

印刷マクロでちょっとハマる(Word) フォルダ内にたくさんあるWordドキュメントの先頭ページだけを印刷する必要があって(どんな「必要」やねん。)、 ちょろっとマクロ書いて片付けるか! と意気込んで始めたにもかかわらず、ちょっとハマったので、報告。…

傍点マクロの改良(Word)

傍点マクロの改良 目次 傍点マクロのイマイチなところ 傍点マクロを改良する 使ってみる 終わりに 傍点マクロのイマイチなところ akashi-keirin.hatenablog.com このときに紹介した傍点マクロ。 便利だと思っていたが、ショートカットキーでサクッと使えるよ…

文書内に挿入した画像に枠を付ける(Word)

文書内に挿入した画像に枠を付ける Wordの文書内に挿入した画像に枠囲いを付けるのは、結構めんどくさいので、枠で囲うマクロを作った。 こんなことができます Wordの文書内に挿入した画像に、ワンクリックで囲みを付ける。ただ、それだけ。 目次 画像に枠囲…

傍点マクロをNormal.dotmに書く(Word)

傍点マクロをNormal.dotmに書く 傍点マクロをNormal.dotmに書く 前回 akashi-keirin.hatenablog.com 作成した傍点マクロ。私は文書作成時にやたらと傍点を使う(というよりは、私の尊敬する書き手が皆一様によく傍点を使うため、引用するときにやたら傍点を…

選択箇所に傍点を施す(Word)

選択箇所に傍点を施す 選択箇所に傍点を施すマクロ 選択箇所に傍点を施すのはめんどくさい 選択箇所に傍点を施すのは実にめんどくさい。 仮に、リボンのタブが「ホーム」にある状態からでも、 対象範囲を選択し、 「フォント」グループの「ダイアログボック…

段落単位で置換できる(Word)

段落単位で置換できる Wordで、特定の範囲だけ置換したかった。 目次 標準機能による置換 Find.Executeメソッドによる置換 段落単位でFind.Executeメソッドを使う おわりに 標準機能による置換 普通、置換はこうする。 画像中に示した、「《 》」でくくられ…

Wordの表の中の文字列

Wordの表の中の文字列 けったいな現象が起こったので報告。 表の中の文字列 Wordドキュメント上に、次のような表を作成する。 で、次のコードで表の左上端セルの文字列を取り出してみる。 リスト1 標準モジュール Private Sub test() Dim tbl As Table Set …

「青空文庫」をWordVBAで攻略する(2)

ルビを振るべき親文字の箇所を取得する 前回 akashi-keirin.hatenablog.com 紹介したのは、「青空文庫」からダウンロードしたテキストファイルから、ルビ情報(「《 》」で括られた文字列)を削除する、という対応だった。 しかし、いくら読みやすさのためと…

「青空文庫」をWordVBAで攻略する(1)

「青空文庫」のテキストからルビ用文字列を除去する 「青空文庫」からダウンロードしたテキストファイルを、WordVBAを用いて整形していきます。 今回は、手始めに〝ルビ用文字列〟の除去を行います。 目次 こんなことができます ルビ用文字列の位置を取得す…

Documentの終端を取得する(Word)

Documentの終端を取得する(Word) 目次 こんなことができます きっかけ Function化 使ってみる おわりに こんなことができます Wordドキュメントの終端のRangeオブジェクトを、簡単に取得することができる。 きっかけ Wordドキュメントの末尾の部分のRangeオ…

VBAでWordドキュメントに行番号を振る

VBAでWordドキュメントに行番号を振る 最近、〈脱・パワポ運動〉の一環として、説明用資料の類をWordで作成するようにしています。 パワポで作るいわゆる「ポンチ絵」のわかりにくさ/非効率を解消するのが目的です。 Wordで作成したドキュメントの「参照指…

Rangeオブジェクトの終端があるParagraphオブジェクトのインデックス番号を返すFunction(Word)

Rangeオブジェクトの終端があるParagraphオブジェクトのインデックス番号を返すFunction 更新頻度ガタ落ちですが、またしてもWordVBAネタです。 まずはコードを お急ぎの方は、コードをコピッペして使ってください。 リスト1 Public Function getParagraphI…

参照元に参照先の通し行番号を書き込む(2)

参照元に参照先の通し行番号を書き込む(2) たとえば、 みたいなドキュメントがあるとする。 参照指示性を高めるために、全ての行に通しで行番号を振っている。 これは、芦田宏直氏のアイディアで、詳しいことは氏の著書『シラバス論』(2019 晶文社)をご覧…

表の中でのセルの位置を特定する(Word)

表の中でのセルの位置を特定する(Word) Excelの表に比べて、Wordの表は勝手に改竄されることが今まで少なかったので、完全に油断していた。 Wordで集めた大量のドキュメント。ファイル名の付け方がバラバラなので、整理が大変。そこで、ドキュメント内に記入…

通しの行番号を取得するFunction(Word)

通しの行番号を取得するFunction(Word) 前回 akashi-keirin.hatenablog.com の続き。 文書全体を通じての通しの行位置を取得するFunctionを作った 考え方 [Range].Informationプロパティを参照すれば、Rangeオブジェクトのあるページ位置(Information(wdAct…

各ページの行数を取得する(Word)

各ページの行数を取得する(Word) Wordドキュメントの、各ページの行数を調べる方法を編み出した(笑)ので、覚書として記しておく。 カーソルのあるページの総行数を取得する [Document].Bookmarks.Item("\Page")の返り値 BookmarksコレクションのItemメソッ…

Wordドキュメントに特定のキーワードが含まれているかどうかを判定する(Word)

Wordドキュメントに特定のキーワードが含まれているかどうかを判定する 困ったこと めちゃくちゃめんどくさい調べ物をして作ったWordドキュメントが、フラッシュメモリから消えていた。 今使っている安物のフラッシュメモリは、変なところで買ったやつで、し…

FormattedTextプロパティの怪

FormattedTextプロパティの怪 『Writing Word Macros』という本を買った。 FormattedTextプロパティ Rangeオブジェクトのところを読んでいたら、FormattedTextというプロパティについて書いてあった。 へえ。そんなものがあったのか。 で、『Word 2013 devel…

改行・改段落の怪(Word)

改行・改段落の怪 前回 akashi-keirin.hatenablog.com の続き。 前回のリスト1を再掲する。 前回のリスト1 'テキストの置換' Private Sub replaceText(ByVal str1 As String, _ With Selection.Find Call .ClearFormatting Call .Replacement.ClearFormatt…