参照元に参照先の通し行番号を書き込む(2) たとえば、 みたいなドキュメントがあるとする。 参照指示性を高めるために、全ての行に通しで行番号を振っている。 これは、芦田宏直氏のアイディアで、詳しいことは氏の著書『シラバス論』(2019 晶文社)をご覧…
行高を適切に(?)調整する(Excel) 印刷時に行が切れてしまわないようにする方法を考えた。 考え方 フォントには、固有の行高がある。単位はポイント。で、Excelの行の高さ([Range].RowHeightプロパティの値)も単位はポイント。だから、次のような考え方…
表の中でのセルの位置を特定する(Word) Excelの表に比べて、Wordの表は勝手に改竄されることが今まで少なかったので、完全に油断していた。 Wordで集めた大量のドキュメント。ファイル名の付け方がバラバラなので、整理が大変。そこで、ドキュメント内に記入…
参照元に参照先の通し行番号を書き込む(1) Wordの本文中で、参照箇所を明示したいときがある。段落番号とか見出しだったら、「相互参照」機能を使って文中に挿入できて、変更にも追随してくれるから良いのだが、通し行番号だけは、どうにもやり方がわからな…
通しの行番号を取得するFunction(Word) 前回 akashi-keirin.hatenablog.com の続き。 文書全体を通じての通しの行位置を取得するFunctionを作った 考え方 [Range].Informationプロパティを参照すれば、Rangeオブジェクトのあるページ位置(Information(wdAct…
各ページの行数を取得する(Word) Wordドキュメントの、各ページの行数を調べる方法を編み出した(笑)ので、覚書として記しておく。 カーソルのあるページの総行数を取得する [Document].Bookmarks.Item("\Page")の返り値 BookmarksコレクションのItemメソッ…
動的リストの作成 前にいたことがある職場に今いる知人から相談を受けた。 秘伝のマクロが動かなくなって困っているらしい。 人助けのつもりでそのExcelを送ってもらって中を見てみた。 あー、確かにこんなのあったなー。おれは改造して使っていたけど。 簡…
Wordドキュメントに特定のキーワードが含まれているかどうかを判定する 困ったこと めちゃくちゃめんどくさい調べ物をして作ったWordドキュメントが、フラッシュメモリから消えていた。 今使っている安物のフラッシュメモリは、変なところで買ったやつで、し…
名簿作成マクロのスタイル(1) Excelで名簿を扱うことが多い私。 これまで数多くの名簿を作成してきたなかで、最近だいぶスタイルが固まってきたので、一旦まとめておくことにした。 この先また考え方が変わるかも知れないが。 シートの役割に関するものはシ…
「ネオ写経」のすすめ 新型コロナウイルス対応で外出の自粛が求められる中、みなさまいかがお過ごしでしょうか。 ろくにテレワーク環境も整っていないのに、「とにかくテレワークだ!」的に導入されてしまった事業所も、それなりにあると思います。 個人的に…
FormattedTextプロパティの怪 『Writing Word Macros』という本を買った。 FormattedTextプロパティ Rangeオブジェクトのところを読んでいたら、FormattedTextというプロパティについて書いてあった。 へえ。そんなものがあったのか。 で、『Word 2013 devel…
Tableオブジェクトの怪(Word) 実に気色悪い現象に出くわしたので報告。 表の余分な行を削除する たとえば、Wordでドキュメント内の表にデータを差し込むようなとき、 このように、使用しない行が生ずることがある。 宛先によってデータの数が異なるとき、テ…
改行マークの怪 前回 akashi-keirin.hatenablog.com の続き。 改行マークの正体とは? まず、 このようなドキュメント(笑)を用意し、画像のように改行マークを選択状態にしておく。 そして、イミディエイトに ?Asc(Selection.Range.Text) と入力して[Enter…
改行・改段落の怪 前回 akashi-keirin.hatenablog.com の続き。 前回のリスト1を再掲する。 前回のリスト1 'テキストの置換' Private Sub replaceText(ByVal str1 As String, _ With Selection.Find Call .ClearFormatting Call .Replacement.ClearFormatt…
VBAによる置換の怪 ちょっと変な現象に出くわしたので報告。 無駄な改段落マークを削除する 最近、Webページ上で公開されている議事録の類をWordドキュメント化する作業にハマっている。今すぐ役に立つわけではないけれど、後で利用するときに楽かな、と思っ…
各段落冒頭の半角スペースを取り除く Webで公開されている議事録の類をWordドキュメント化することが割と増えた。 しばらく待っているとPDFで正式な議事録が出される場合もあるが、割と時間がかかる上、PDFだと記載内容をコピッペする際に割とめんどくさい。…
Custom Collection Classのすすめ(1) PersonクラスとPersonsクラス ちょっと次のコードをご覧いただきたい。 リスト1 Private Sub test01() Dim proWrestlers As Persons Set proWrestlers = New Persons With proWrestlers Call .Add Call .Add("阿修羅原"…
WordのRangeオブジェクトの謎挙動 完全にわけがわからなくなってしまった。 Find.Executeメソッドで特定の文字列の箇所をRangeオブジェクトとして取得する 次のようなメソッドを作成し、現在のカーソル位置の直近にある指定した文字列の場所をRangeオブジェ…
Custom Eventに挑戦 存在は知っていたけど、実はやったことなかった。 『VBA Developer's Handbook Second Edition』の説明が実にわかりやすかったので、ちょっとやってみようと思った。 まあ、単なる覚書です。 手順 今回は、三つのクラスモジュールを用い…
キーワードをカッコで括るマクロ Wordドキュメントの中に出てくるキーワードをカッコで括るマクロ。 キーワードの部分を取得する まずは、キーワードの部分を取得しなければならない。Rangeオブジェクトとして取得すれば、あとは[Range].Textプロパティを書…
Wordドキュメント上で指定した段落以外の段落を折り畳む 段落を折り畳むことができる 知らなかった。 Wordの標準機能にあった。 百聞は一見に如かず。次をご覧いただきたい。 「百聞は一見に如かず」と偉そうに言った割にはわかりにくい画像ですまないw 見…
自作クラスのオブジェクト型デフォルトメンバ……??? ちょっと衝撃的な実行結果が出たので報告。 自作クラスにデフォルトメンバを設定する これは、『VBA Developer's Handbook Second Edition』に載っていたテクニック。 VBA界隈では有名な id:t-hom さん…
選択範囲のフィールドコードを表示させる キーボード上での[Shift] + [ F9 ](半角モード)をVBAで実現する方法。 これまで、[Window].[View].ShowFieldCodesプロパティのオンオフ(True/False)切り替えしか知らなかった。 ちょこちょこっと調べてみたら、…
[Range].PhoneticGuideメソッドを使いやすくする [Range].PhoneticGuideメソッドはちょい使いにくいので、使いやすく改良。 改良したコード [Range].PhoneticGuideメソッドは、何といっても引数Raiseが超絶わかりにくい。ゆえに、[Range].PhoneticGuideメソ…
安心の実行結果 先日、 akashi-keirin.hatenablog.com このような、衝撃的な実行結果についてお伝えした。 今回は、安心の実行結果である。 フォントサイズは0.5の倍数のみ? 今まであまり気にしたことはなかったのだが、ルビのフィールドコードをいじくって…
ルビが設定された部分のフォント情報を取得する 選択箇所のフォント情報を取得するときには、Selection.Fontオブジェクトにアクセスすればよい。たとえば、 Selection.Font.Name とすれば、カーソル位置のフォント名が取得できる。 ……はずだ。 ルビが設定さ…
衝撃の実行結果 最近、WordのVBAでのルビ操作にハマっている。 [Range].PhoneticGuideメソッドでルビを振るのだが、あまり細かい調整ができず、さりとてルビを振った後Field.Code.Textプロパティの値をVBAで書き換えると、 ドキュメントを開きなおしたときに…
マクロでルビ振りをするときの注意(Word) Word VBA のバグを発見したので、ここで盛大に晒しますw [Range].PhoneticGuideメソッドでルビを振る まず、次のようなドキュメント(笑)を用意する。 選択部分を見たらわかるように、フォントは「MS 明朝」。 …
[Selection].MoveRightメソッドの挙動に注意 [Selection].MoveRightメソッド([Selection].MoveLeftメソッド)を使用していて軽くハマったので、記しておく。 [Selection].MoveRightメソッド [Selection].MoveRightメソッドというのは、Wordでドキュメント…
ハイライト部分を切り替えるマクロ コードだけ掲載しておく。 クラスモジュールと標準モジュールを使った。 ハイライト部分を保持するクラス ハイライト部分を保持し、ハイライト部分の再取得、ハイライトのオンオフ切り替えができるようなオブジェクト。 ク…