【連載】差し込み印刷のレコードごとにドキュメントを作成するマクロの解説(第7回)

第7回 ループ処理に書き換える ランキング参加中プログラミング 前回 akashi-keirin.hatenablog.com までで、ついに データ(笑)を差し込んだ新規文書をちょっと手入れして名前を付けて保存する という核心部分の処理が出来上がりました。 今回は、この処理…

【連載】差し込み印刷のレコードごとにドキュメントを作成するマクロの解説(第6回)

第6回 新規文書に名前を付けて保存する ランキング参加中プログラミング 前回、 akashi-keirin.hatenablog.com データ(笑)を差し込んで新規作成した文書について、コマンドボタンを置いた1ページ目を削除するところまで進みました。 今回は、この文書に名…

【連載】差し込み印刷のレコードごとにドキュメントを作成するマクロの解説(第5回)

第5回 1ページ目を削除する 前回 akashi-keirin.hatenablog.com 新規文書作成後にできる余分なセクション区切りの削除まで進みました。 今回は、コマンドボタンを置くためにのみ存在していた1ページ目の削除を行います。 目次 〝ページを削除する〟とは? 〝…

【連載】差し込み印刷のレコードごとにドキュメントを作成するマクロの解説(第4回)

第4回 余分なセクション区切りを削除する 前回 akashi-keirin.hatenablog.com データ(笑)を差し込んだ新規文書を作成するところまで進んだので、お次はその新規文書を整える、というフェーズです。 ここで、前回の内容をプロシージャにしておきましょう。 …

【連載】差し込み印刷のレコードごとにドキュメントを作成するマクロの解説(第3回)

第3回 MailMergeオブジェクトを使う 前回 akashi-keirin.hatenablog.com ひととおり準備ができたので、いよいよマクロの作成に移ります。 マクロに盛り込むべき処理は次のとおりです。 差し込みデータを1件文書に差し込んで、新しい文書を作る 新しくできた…

【連載】差し込み印刷のレコードごとにドキュメントを作成するマクロの解説(第2回)

第2回 差し込み印刷用文書と差し込みデータの準備 前回 akashi-keirin.hatenablog.com の続きです。 差し込み印刷用文書と、文書に差し込むデータを準備し、差し込み印刷の設定を行います。 目次 差し込み印刷用文書の準備 差し込みデータの準備 差し込み印…

【連載】差し込み印刷のレコードごとにドキュメントを作成するマクロの解説(第1回)

当ブログでは比較的アクセス数の多い akashi-keirin.hatenablog.com について、改めて詳しく解説しようと思います。 第1回 完成品の仕様 まず、完成品の仕様について紹介しておきます。 およそ以下のような仕様です。 目次 1ページ目に実行ボタンがある 2ペ…

平田淳嗣さんの気持ちを味わうマクロ

平田淳嗣さんの気持ちを味わうマクロ あの平田淳嗣さんの気持ちを味わうためのマクロです。 目次 やりたいこと ソースコードと考え方 おわりに やりたいこと ユーザをして、あの有名な事件のときの平田さんの気持ちを味わわしめることです。 ソースコードと…

YouTuberデビューしました。

こちらのブログは、長らく放置気味ですが、忘れているわけではないので、気が向いたら(っていうか面白いネタがあったら)更新します。 〝Word公文書系YouTuber〟としてYouTuberデビューしましたので、よろしければチャンネル登録をお願いします。 www.youtu…

任意の文字列に対して擬似的にワードラップを適用する

任意の文字列に対して擬似的にワードラップを適用する 総務省の通知文書 きみは、これを見て何も感じないのか? この画像を見て、何も感じないだろうか。 何も感じなかった、という人は、では、次の画像はどうだろうか。 どうだろうか。 私は、こわかった 二…

カーソル位置にインライン画像を挿入するマクロ(Word)

カーソル位置にインライン画像を挿入するマクロ もちろん、ただ単にインライン画像を挿入するだけではありません。 仕様 ダイアログボックスで画像を選択する。 カーソル位置に挿入する。 画像用のスタイルを当てる 四方に枠線を施す 図表番号を付ける 実に…

アクティブドキュメントをPDF化するマクロ(Word)

アクティブドキュメントをPDF化するマクロ(Word) アクティブドキュメントをPDF化するマクロ もう表題そのままのマクロです。 Normal.dotmに置いておいて、クイック アクセス ツール バーに登録しておくとメチャクチャ便利です。 仕様 ファイル名はそのまま…

Environメソッドというものがある

Environメソッドというものがある Wordの〝標準テンプレート〟ファイル(Normal.dotm)を、VBAでゴニョゴニョしたい、ということがあったとする。 その場合、当然ながら標準テンプレートファイルのあるディレクトリのパスを取得する必要がある。 自分一人し…

ChatGPTにコードをレビューしてもらう

ChatGPTにコードレビューをしてもらう 自作MakeUserSickメソッドを改良(?)する 今話題のChatGPTにコードを投げると、コードレビューしてもらえる。 孤独なVBAマンには実にありがたい。 そこで、わが最高傑作(?)、MakeUserSickメソッドを少し改良(?)…

【覚書】[Shell32.Shell].Namespaceメソッドの引数でハマった話

【覚書】Shell32.Shell.Namespaceメソッドの引数でハマった話 結論だけ手っ取り早く知りたい方はコチラ。 何があったのか 事の発端:Shell32.Shellオブジェクトを使うマクロ かつて、 akashi-keirin.hatenablog.com こんなネタを書いていた。 レイト・バイン…

Rangeオブジェクトの場所を目立たせるマクロ(Word)

Rangeオブジェクトの場所を目立たせるマクロ(Word) WordのRangeオブジェクトの場所はわかりにくい WordのVBAでマクロを作っているとき、地味に困るのが、 Rangeオブジェクトがどこを指し示しているのかわからん問題である! Steven Romanさん、ありがとう…

隠し文字を検索してカーソルを移動する(Word)

隠し文字を検索してカーソルを移動する(Word) 隠し文字は表示しないと検索に引っかからない 隠し文字は、編集画面上で非表示になっていると、Findオブジェクトを用いた検索に引っかからない。(もちろん、ふつうに検索ダイアログボックスを用いて検索して…

隠し文字の表示/非表示の切り替え(Word)

隠し文字の表示/非表示の切り替え(Word) 隠し文字の表示/非表示を切り替える 超絶小ネタ。 文字通り、隠し文字の表示/非表示を手軽に切り替えるためのマクロ。 けっこうめんどくさいですからね。(ですよね? 知らんけど。) では、さっそくコードをお…

見出しの配下にある内容を取得する(Word)

見出しの配下にある内容を取得する(Word) 見出しの配下を取得したい 「見出し」というものは、普通、文書の〝意味のあるカタマリ〟ごとに付けるものだと思う。 「見出し」単位で、文書の内容を取り出せたら便利である。 ただ、〝手作業でコピッペする〟と…

サブフォルダも含め配下のフォルダパス全てを返すFunction

サブフォルダも含め配下のフォルダパス全てを返すFunction 作ってみた いや、FileSystemObject使えよ、って話なんですけどね。 Dir関数使って作ったらどうなんのかな、と思って。 ソースコードを晒す 場当たり的に作ったやつなので、だいぶ恥ずかしいのです…

組み込み定数(列挙体)を自作(?)しておく

組み込み定数(列挙体)を自作(?)しておく CreateObject派への転向 実は、だいぶ前からCreateObject派に転向しておりました。 やっぱり、参照設定せずに使えるってのはいいよね、ということで。 CreateObject派になって困ること いろいろあると思いますが…

WordでMarkdownっぽいことをするマクロ(Word)

WordでMarkdownっぽいことをするマクロ(Word) やりたいこと 先頭に# を付けた段落には、「#」の数に応じた階層の「見出し」スタイルを当てる。 その他の「標準」スタイルの段落には、「本文」のスタイルを当てる。 こういうことがしたい。 仕事柄、文章の…

段落罫線を気軽に追加する(Word)

段落罫線を気軽に追加する 段落罫線を追加するのはめんどくさい 文書に区切りの線を入れたいときがある。 たとえば、 こいつを、 こんなふうにしたいときである。 (あ。「そんなもん、ハイフン三つ連チャンで入力したらいいじゃねえか。タコ!」というツッ…

カーソルが段落の先頭にあると正しい段落インデックスが取得できない(Word)

カーソルが段落の先頭にあると正しい段落インデックスが取得できない [Range].Startプロパティと[Range].[Paragraphs].Countプロパティを用いる方法 Rangeオブジェクトの終端がある段落インデックスを取得する方法は、かつて akashi-keirin.hatenablog…

RemovePersonalInformationプロパティというものがある(Word)

RemovePersonalInformationプロパティというものがある 結論だけ知りたければ、コチラをどうぞ。 前回の方法 文書の「作成者」とか「最終更新者」の情報を消す方法として、前回は、 akashi-keirin.hatenablog.com こういう方法を紹介した。 しかし、これもあ…

RemoveDocumentInformationメソッドというものがある(Word)

RemoveDocumentInformationメソッドというものがある RemoveDocumentInformationメソッド 知らなかった。 Documentクラスのメンバ一覧を「オブジェクト ブラウザー」様で見ていて見つけた。 有名なのだろうか……。 使ってみる 例によって、私がマイPCで文書を…

文書の「作成者」を書き換える(Word)

文書情報を書き換える BuiltInDocumentPropertiesプロパティ 私は、Microsoftアカウントを、実にふざけた名前で登録してしまっている。 だから、自宅のPCで作成したドキュメントをもとに、仕事で使うドキュメントを作成したときなんかには、「作成者」とか「…

CharacterUnitFirstLineIndentプロパティ、おまえだったのか……(Word)

CharacterUnitFirstLineIndentプロパティ、おまえだったのか。いつもくりをくれたのは。 ついさきほど、 akashi-keirin.hatenablog.com こんなことを書いたところだが、マルちゃん麺づくりばりにあっさり解決したので、報告。 CharacterUnitFirstLineIndent…

字下げインデントを解除できない?(Word)

字下げインデントを解除できない? 実に不可思議な現象に出くわしたのでメモ。 なお、未解決である。 字下げインデントを解除する方法 段落の字下げインデントを司っているのは、ParagraphFormatオブジェクトのFirstLineIndentプロパティ。 理屈の上では、コ…

なんでVBAでクラスモジュールを使うのか

なんでVBAでクラスモジュールを使うのか 基本的には標準モジュールで十分 プログラムを書くときに、モノとして扱った方が楽な場合がある。 モノの機能だけが欲しいのなら、標準モジュールでいい。 機能のまとまりを表す名前を付けて、その中にメソッドをまと…