ブック内で使用している関数の数をカウントするマクロ(Excel)

ブック内で使用している関数の数をカウントするマクロ(Excel) 久しぶりのExcelネタだ。 とりあえずコードをぶちまける 現在(?)、Excelには、488個の関数があるらしい。 その488の関数名をコピッペしたこんなシートを用意して、 その関数名リストの部分…

割り当てたショートカットキーを忘れないようにする

割り当てたショートカットキーを忘れないようにする これはタイトルに偽りありかも知れない。 よく使うマクロを使いやすくする クイック アクセス ツール バーを使う たとえば、前回 akashi-keirin.hatenablog.com 紹介した〝選択箇所に傍点を施すマクロ〟の…

傍点マクロを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 紹介したのは、「青空文庫」からダウンロードしたテキストファイルから、ルビ情報(「《 》」で括られた文字列)を削除する、という対応だった。 しかし、いくら読みやすさのためと…

指定した文字列に挟まれた箇所を取得する(Word)

補足 指定した文字列に挟まれた箇所を取得する akashi-keirin.hatenablog.com の補足。 ワイルドカードを用いたらもっと簡単にできるので、書いておきます。 目次 こんなことができます 考え方 指定した文字列に挟まれた箇所を取得するFunction 指定した文字…

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

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

VBEのフォントを変えたらバグった話

VBEのフォントを変えたらバグった話 フォントを変えたらVBEがバグった VBEのフォントを、Ricty Diminished Discordに変えたら、VBEがおかしくなった。 [ツール]→[オプション]→[エディターの設定]の順にクリックすると、「応答なし」になって、Excelが…

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

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

Callbackメソッドを追加する

Callbackメソッドを追加する 前回 akashi-keirin.hatenablog.com 作成したDekosukeクラス。 そのイベントリスナ用ImmWndCallbackクラスに、新たなメソッドを追加してみる。 目次 こんなことができます インターフェースIDekosukeCallbackの変更 ImmWndCallba…

Custom EventをCallbackに変える

Custom EventをCallbackに変える クラスモジュールを用いて作ったオブジェクトには、イベントを持たせることができる。 akashi-keirin.hatenablog.com 今回は、このCustom Eventと同様のことを、別のやり方でやってみる。 Custom Eventの場合は、Event、Rais…

Worksheetを継承したクラスを作る(8)

ラップしたオブジェクトのイベントを検知する めっちゃ久しぶりに akashi-keirin.hatenablog.com の続き。 ちょっと何言ってるかわからないかも知れないので説明する。 たとえば、WorksheetオブジェクトをラップしたPoweredSheetという自作クラスがあるとす…

WMIのWin32_Printerクラス

WMIのWin32_Printerクラス VBAでプリンタまわりを操作したいなあと思って、あれこれ調べていると、「WMI(Windows Management Instrumentation)」というものを使うという道があることがわかった。 そうしょっちゅう使うわけでもないが、覚書として記してお…

自作クラスのデフォルトメンバに関する大発見 その2

自作クラスのデフォルトメンバに関する発見 その2 このとき akashi-keirin.hatenablog.com から10箇月の時を経て、またまた世紀の大発見をしたので、紹介します。 あのときの方法 詳しくはコチラを読んでいただきたいが、早い話が、 インスタンスを突っ込ん…

VBAでプリンタを変更する

プリンタの切り替え VBAで、使用中のプリンタを切り替える方法。 目次 かつての考え方 こんな方法があったのか おわりに かつての考え方 Application.ActivePrinterプロパティで切り替える VBAでプリンタを切り替えるには、Application.ActivePrinterプロパ…

範囲内でのセルの相対位置を求める

セルの範囲内での相対位置を求める 特定のセルが、指定範囲内の上から何番目にあるのかを求める必要があったので作った。 「指定範囲」は1列、「特定のセル」は1個限定。 セルの相対位置を返すFunction とりあえず、指定範囲を上から順に当たっていって、…

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

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

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

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

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

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

行高を適切に(?)調整する(Excel)

行高を適切に(?)調整する(Excel) 印刷時に行が切れてしまわないようにする方法を考えた。 考え方 フォントには、固有の行高がある。単位はポイント。で、Excelの行の高さ([Range].RowHeightプロパティの値)も単位はポイント。だから、次のような考え方…

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

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

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

参照元に参照先の通し行番号を書き込む(1) Wordの本文中で、参照箇所を明示したいときがある。段落番号とか見出しだったら、「相互参照」機能を使って文中に挿入できて、変更にも追随してくれるから良いのだが、通し行番号だけは、どうにもやり方がわからな…

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

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

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

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

動的リストの作成

動的リストの作成 前にいたことがある職場に今いる知人から相談を受けた。 秘伝のマクロが動かなくなって困っているらしい。 人助けのつもりでそのExcelを送ってもらって中を見てみた。 あー、確かにこんなのあったなー。おれは改造して使っていたけど。 簡…

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

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

名簿作成マクロのスタイル(1)

名簿作成マクロのスタイル(1) Excelで名簿を扱うことが多い私。 これまで数多くの名簿を作成してきたなかで、最近だいぶスタイルが固まってきたので、一旦まとめておくことにした。 この先また考え方が変わるかも知れないが。 シートの役割に関するものはシ…

「ネオ写経」のすすめ

「ネオ写経」のすすめ 新型コロナウイルス対応で外出の自粛が求められる中、みなさまいかがお過ごしでしょうか。 ろくにテレワーク環境も整っていないのに、「とにかくテレワークだ!」的に導入されてしまった事業所も、それなりにあると思います。 個人的に…