WordVBA

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…

VBAによる置換の怪(Word)

VBAによる置換の怪 ちょっと変な現象に出くわしたので報告。 無駄な改段落マークを削除する 最近、Webページ上で公開されている議事録の類をWordドキュメント化する作業にハマっている。今すぐ役に立つわけではないけれど、後で利用するときに楽かな、と思っ…

段落冒頭の半角スペースを除去する(Word)

各段落冒頭の半角スペースを取り除く Webで公開されている議事録の類をWordドキュメント化することが割と増えた。 しばらく待っているとPDFで正式な議事録が出される場合もあるが、割と時間がかかる上、PDFだと記載内容をコピッペする際に割とめんどくさい。…

WordのRangeオブジェクトの謎挙動

WordのRangeオブジェクトの謎挙動 完全にわけがわからなくなってしまった。 Find.Executeメソッドで特定の文字列の箇所をRangeオブジェクトとして取得する 次のようなメソッドを作成し、現在のカーソル位置の直近にある指定した文字列の場所をRangeオブジェ…

キーワードをカッコで括るマクロ(Word)

キーワードをカッコで括るマクロ Wordドキュメントの中に出てくるキーワードをカッコで括るマクロ。 キーワードの部分を取得する まずは、キーワードの部分を取得しなければならない。Rangeオブジェクトとして取得すれば、あとは[Range].Textプロパティを書…

Wordドキュメント上で指定した段落以外の段落を折り畳む

Wordドキュメント上で指定した段落以外の段落を折り畳む 段落を折り畳むことができる 知らなかった。 Wordの標準機能にあった。 百聞は一見に如かず。次をご覧いただきたい。 「百聞は一見に如かず」と偉そうに言った割にはわかりにくい画像ですまないw 見…

選択部分のフィールドコードだけを表示させる(Word)

選択範囲のフィールドコードを表示させる キーボード上での[Shift] + [ F9 ](半角モード)をVBAで実現する方法。 これまで、[Window].[View].ShowFieldCodesプロパティのオンオフ(True/False)切り替えしか知らなかった。 ちょこちょこっと調べてみたら、…

Range.PhoneticGuideメソッドを使いやすくする(Word)

[Range].PhoneticGuideメソッドを使いやすくする [Range].PhoneticGuideメソッドはちょい使いにくいので、使いやすく改良。 改良したコード [Range].PhoneticGuideメソッドは、何といっても引数Raiseが超絶わかりにくい。ゆえに、[Range].PhoneticGuideメソ…

安心の実行結果(Word)

安心の実行結果 先日、 akashi-keirin.hatenablog.com このような、衝撃的な実行結果についてお伝えした。 今回は、安心の実行結果である。 フォントサイズは0.5の倍数のみ? 今まであまり気にしたことはなかったのだが、ルビのフィールドコードをいじくって…

ルビが施された部分のフォント情報を取得する(Word)

ルビが設定された部分のフォント情報を取得する 選択箇所のフォント情報を取得するときには、Selection.Fontオブジェクトにアクセスすればよい。たとえば、 Selection.Font.Name とすれば、カーソル位置のフォント名が取得できる。 ……はずだ。 ルビが設定さ…

衝撃の実行結果(Word)

衝撃の実行結果 最近、WordのVBAでのルビ操作にハマっている。 [Range].PhoneticGuideメソッドでルビを振るのだが、あまり細かい調整ができず、さりとてルビを振った後Field.Code.Textプロパティの値をVBAで書き換えると、 ドキュメントを開きなおしたときに…

マクロでルビ振りをするときの注意(Word)

マクロでルビ振りをするときの注意(Word) Word VBA のバグを発見したので、ここで盛大に晒しますw [Range].PhoneticGuideメソッドでルビを振る まず、次のようなドキュメント(笑)を用意する。 選択部分を見たらわかるように、フォントは「MS 明朝」。 …

Selection.MoveRightメソッド(Word)の挙動に注意

[Selection].MoveRightメソッドの挙動に注意 [Selection].MoveRightメソッド([Selection].MoveLeftメソッド)を使用していて軽くハマったので、記しておく。 [Selection].MoveRightメソッド [Selection].MoveRightメソッドというのは、Wordでドキュメント…

ハイライト部分を切り替えるマクロ(Word)

ハイライト部分を切り替えるマクロ コードだけ掲載しておく。 クラスモジュールと標準モジュールを使った。 ハイライト部分を保持するクラス ハイライト部分を保持し、ハイライト部分の再取得、ハイライトのオンオフ切り替えができるようなオブジェクト。 ク…

Selection.Collapseメソッドの挙動に注意(Word)

Selection.Collapseメソッドの挙動に注意 前回 akashi-keirin.hatenablog.com 紹介した、次のハイライト箇所を取得するgetNextHighLightメソッド。 検索箇所を取得した後、Selection.Collapseメソッドを用いて、選択箇所を後方に向けて潰すようにしている。 …

文書中のハイライトされた箇所を取得するFunction(Word)

文書中のハイライトされた箇所を取得するFunction 文書中のハイライトされた箇所を取得するFunctionについては、かつて akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com このような形で取り上げたことがあった。 しかし、ハイライト箇所を文書本…

テキストボックスの先頭にカーソルを置く(Word)

テキストボックスの先頭にカーソルを置く これ、みなさんどうやって実現しているのでしょう? テキストボックス内の文字列を取得する テキストボックスはShapeオブジェクトの一種。 んで、その配下にTextFrameオブジェクトがあり、そのTextRangeプロパティを…

差し込み印刷のデータソース接続前にデータソースの存否確認をする(Word)

差し込み印刷のデータソース接続前にデータソースの存否確認をする ……などと、大それた標題をブチ上げたが、実質的な 敗北宣言 だと思っていただきたい。 いわば、爆負宣言である。 差し込み印刷のデータソースはExcel限定 実は、差し込み印刷の差し込みデー…

『BLOG「芦田の毎日」』(シラバスとは何か ― コマシラバスはなぜ必要なのか)の本文を読みやすく加工するマクロ(Word)

『BLOG「芦田の毎日」』(シラバスとは何か ― コマシラバスはなぜ必要なのか)の本文を読みやすく加工するマクロ(Word) 我ながら超ニッチなマクロであるw 過去記事 このときにも紹介したが、標題の記事は、 ※本文中、(●)などの表記が見られる場合は、その…

ドラッグで文字列を選択したかのような操作(Word)

文字列をドラッグして選択する操作(Word) akashi-keirin.hatenablog.com このとき、 選択範囲を文字数単位で拡張するメソッドとか、ないものか。(←調べろ。) などと、テキトーなことをぶっこいていたが、 あった。 やはり、ものごとというものは、ちゃんと…

指定した文字列に傍点を施すWordマクロ

指定した文字列に傍点を施すWordマクロ 芦田宏直氏が、ブログ『芦田の毎日』上で、「シラバスとは何か ― コマシラバスはなぜ必要なのか」という超大作の論考を発表しておられる。 氏のツイート(@jai_an)によると、2019/07/06時点で11万字overとのこと。 読…

表の位置を右にずらす(Word)

表の横位置を変更する ドキュメント内の表の横位置を変える方法が判明したので、メモ代わりに記しておく。 RowsオブジェクトのLeftIndentプロパティを使う 表の位置なので、Tableオブジェクトのプロパティを触ればよいと思っていたが、違った。 左端にある表…

Tableオブジェクトの謎挙動(Word)

Tableオブジェクトの謎挙動(Word) なんだかよくわからん現象が起こるので報告。 ドキュメントに表を挿入する ドキュメントに表を挿入するには、Document.TablesコレクションのAddメソッドを用いる。 リスト1 標準モジュール Dim targetTable As Table With …

名づけて、「ダルマ落とし方式」! (Word)

名づけて「ダルマ落とし方式」! 前回 akashi-keirin.hatenablog.com のマヌケ記事の続き。 シェイプが一掃されない理由 どうも、For Eachでループさせる際に、VBAは内部でShapesコレクションに番号を振って、その番号順に処理をしているらしい。 ただ、Dele…

Document内のテキストボックスを一掃すること能わず……(Word)

WordのDocument上からテキストボックスを一掃できない やたらとテキストボックスがベタベタ貼り付けられた文書に出会った。 文章をコピペしようにも、巻き添えでテキストボックスが選択されてしまうのでうっとうしいことこの上ない。 で、マクロで一掃してや…

ルビと親文字の距離を調整するFunction(Word)

ルビと親文字の距離を調整するFucntion ルビと親文字の距離を司るのは、 EQ \* jc4 \* "Font:MS 明朝" \* hps10 \o\ar(\s\up 10(ムーンサルト),月面宙返) の中の \s\up 10 の部分。 たとえば、 この状態のときのルビの設定は、 このとおり。 このときのフ…

繰り返しを伴う処理をまとめる

フィールドコード総ナメ方式のプロシージャをまとめる 前回までの3回 akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com で紹介したFunctionを使って、選択範囲のフィールドコードを総当たりで処理するプロシージャ…

ルビのサイズを変更するFunction(Word)

ルビのサイズを変えるFunction 前回 akashi-keirin.hatenablog.com の続き。 ルビのサイズを変える ルビのサイズを変えるには、 上記フィールドコード、 EQ \* jc2 \* "Font:MS 明朝" \* hps10 \o\ad(\s\up 10(ムーンサルト),月面宙返) のうち、 \* hps10 …

ルビの割付を変更するFunction(Word)

ルビの割付を変更するFunction 正確に言えば、ルビの割付位置を変更した後のFieldオブジェクトのCode.Textプロパティの値を変更するFunctionです。 ルビの割付の変更 たとえば、 この「月面宙返」にルビを振る。 「ルビ」ダイアログボックスにこのように設定…