WordVBA

表の位置を右にずらす(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です。 ルビの割付の変更 たとえば、 この「月面宙返」にルビを振る。 「ルビ」ダイアログボックスにこのように設定…

テキストボックス内のハイライト部分をそれぞれ配列に格納して、Collectionにする(Word)

テキストボックス内のハイライト部分をそれぞれ配列に格納して、Collectionにする 意味の取りづらいタイトルですまない。 テキストボックス内のハイライト部分(Rangeオブジェクト)をテキストボックスごとに配列にして、それぞれの配列をCollectionにぶち込…

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

テキストボックス内の先頭にカーソルを置く Documentオブジェクトの場合 Documentオブジェクトの先頭位置にカーソルを置くのは簡単。 Document.Range(0, 0).Select とすれば、ドキュメントの先頭位置にカーソルを置くことができる。 テキストボックスの場合 …

Document.ShapeオブジェクトのNameプロパティとは何なのか(Word)

Document.ShapeオブジェクトのNameプロパティとは何なのか ちょっと意味がわからない現象に気づいたので、記しておく。 二つのテキストボックス WordのDocumentに二つテキストボックスを設置してみる。 こんな感じ。 んで、次のようなコードを実行してみる。…

マーカ部分をRange配列として取得する(Word)

Findオブジェクトを用いてマーカ部分を取得する この記事 akashi-keirin.hatenablog.com へのid:imihitoさんのコメントにより、Findオブジェクトを用いて「蛍光ペン」のところをRangeオブジェクトとして取得できるということを知った。 参考にしたのは『みん…

UndoRecordオブジェクトというものがある(Word)

UndoRecordオブジェクトというものがある 前回の akashi-keirin.hatenablog.com に、id:imihito さんからコメントをいただいた。 曰く、 また、Undoの履歴は、以下のようにするとひとまとめに出来たはずです ```vb Application.UndoRecord.StartCustomRecord…

Document.Charactersコレクションの要素を一つづつ処理するのは大変(Word)

WordでDocument.Charactersオブジェクトを一つづつ処理するのは異様に時間がかかる 資料の修正箇所に網掛けをしたものと、同じ内容で網掛けのないバージョンを要求されることがある。 そして、網掛けありバージョンと網掛けなしバージョンが併立するというこ…

選択範囲のルビを除去する(Word)

選択範囲のルビを除去する 青空文庫(HTML版)からWordに文章をコピペすると、 こんなふうに、むやみやたらとデカいルビが設定されていて、レイアウトがめちゃくちゃになる。 ルビのサイズを小さくすることも考えたが、ひとまず選択範囲のルビを除去する方向…

「写経」用教材を作成する(Word)

「写経」用教材(?)を作成する Wordの「原稿用紙設定」機能 『一太郎』では、「文書スタイル呼び出し」(?)という機能で、コクヨ社の原稿用紙の書式を呼び出すことができる。んで、印刷するときに「升目を印刷する」というチェックボックスにチェックを…

Sentencesコレクションの要素の一番最初の「文字」が何文字目かを調べるFunction(Word)

Sentencesコレクションの要素の一番最初の「文字」が何文字目かを調べるFunction 分かりにくいタイトルですまぬ。 文の最初の文字の位置を調べたい。たとえば、 「……『ち~んw』とか言うな!」と言った。 みたいなときに、最初の文字「ち」の位置が知りたい…

記号は黒字、文字は白字にするマクロ

記号を黒字、文字を白字にする 前回 akashi-keirin.hatenablog.com を用いて、記号は黒字に、文字は白字にするメソッドを作った。 コード コードは次の通り。 リスト1 標準モジュール Private Sub changeFontColor(ByVal targetFont As Font) '……(1)' If is…

文章の中で使われる記号かどうかを判定するFunction(Word)

文章の中で使われる記号かどうかを判定するFunction ちょっとやってみたいことがあって、標題のようなFunctionを作ってみようと思い立った。 以前、 akashi-keirin.hatenablog.com 文字が漢字かどうかを判定するFunctionを作ったときは、ある意味非常に簡単…

SentencesコレクションとCharactersコレクション(Word)

SentencesコレクションとCharactersコレクション SentencesコレクションとCharactersコレクションって、ちょっと変わっているよな、というだけの話。 Sentencesコレクションの要素はSentenceオブジェクトに非ず たとえば、コード・ウインドウ上で、 Dim targ…

カーソルを任意の位置に置く(Word)

カーソルを任意の位置に置く たぶんWord2010のバグだと思うのだけれど、均等割付を施したところに差込フィールドがあると、差し込まれた後に字幅がおかしくなる。 職場のPCでしか遭遇しない症状なので、画像でお見せできないんだけれど、データが差し込まれ…

Wordの「スタイル」をVBAで操作する(3) (Word)

「標準」スタイルのフォントを変更するメソッド 前回 akashi-keirin.hatenablog.com のつづき。 一発で「標準」スタイルのフォント設定を変更することができるようなマクロを作ってみる。 リスト1 標準モジュール '///標準スタイルのフォントを設定する' Pu…

Wordの「スタイル」をVBAで操作する(2) (Word)

「標準」スタイルのフォントを変える 前回 akashi-keirin.hatenablog.com のつづき。 ウチの環境では、Document.Styles(194)で「標準」スタイルにアクセスできるのだった。 Style.Fontオブジェクト MSDN Dev Centerの「Style Members (Word)」によると、フォ…

Wordの「スタイル」をVBAで操作する(Word)

Wordの「スタイル」をVBAで操作する ウチの職場には、書類の英数字は等幅という謎ルールがある。 まあ、位置が揃わないのが嫌なのはなんとなく分かる。 ただ、「スタイル」という機能を知らずにWordを使っている人がほとんど(目測で9割以上)なので、 文書…

Document_Closeイベントで差込データソースとの接続を切断する

Document_Closeイベントの挙動 差し込み印刷の設定をしているドキュメントは、一旦閉じると、次回起動時に自動的に前回接続していたデータソースに接続しようとする。 これはこれで親切機能なのだが、何も知らない人が差し込み設定をしたドキュメントを別の…

STARTUPフォルダの中に置くのはショートカットでいい[Word]

STARTUPフォルダに置いておくのはショートカットでいい STARTUPフォルダに置くマクロ入りテンプレート しょっちゅう使うマクロをアドインにする、というワザを割と最近覚えたんだけれど、 akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com Wordの…

ファイル名を変えて保存する[Word]

Wordドキュメントの名前を変えて保存する SaveAs2メソッドとNameステートメントの処理をラップする イメージとしては、 「名前を付けて保存」でファイル名を変えて別フォルダに移す処理 元のファイルを別のフォルダに移す処理 をいっぺんにやってしまう、と…

フォルダ選択ダイアログを表示させるFunction

フォルダを選択させてフォルダパスを取得するFunction ファイルをリネームするマクロを作るにあたり、保存先をその都度選べるようにした方が汎用性が高いと思ったので、Functionにしてみようと思った。 すでに akashi-keirin.hatenablog.com このときにクラ…

Wordの表から文字列を取り出すFunction

Wordの表の文字列を取得するFunction Wordの表の文字列を取得する 「書類の電子化」と言いつつ、 単に紙をWordとかにしただけ という凶悪な職場はいまだに一定の数存在すると思う。 んで、いろんなところからWordドキュメントが集まってくるわけだが、そんな…

WordVBAで処理に使うデータを外部化する

指定した文字列のフォントを狙い撃ちで変えるマクロの改良 データを外部ファイル化する たとえば、明朝体で書かれた文書のうち、特定の語句だけを狙い撃ちでゴシック体にしたい、というときには、 ゴシック体に変えたい語句(X) と、 Xを含んでいるけれどゴ…