VBA自作メソッド

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ズンドコ節で遊ぶ

ズンドコ節で遊ぶ ノンプロ研のSlackのチャンネルに「今週のお題」というやつがある。毎週一つ、ちょっとした「お題」(〈数字をローマ数字に変換する関数を作れ〉とかそういうやつ)がランダムに出される。 今回、 「ズン」と「ドコ」をランダムで出力し、…

Find.Executeメソッドのハマりを回避する(Word)

Find.Executeメソッドのハマりを回避する(Word) 前回 akashi-keirin.hatenablog.com お知らせしたように、Selection.Collapseメソッドが(仕方がないにせよ)カーソルが末尾にあるときに悲しい挙動をしてしまうせいで、Find.ExecuteメソッドをDo ~ Loopで回…

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

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

クラスモジュールを用いたStackの改良

クラスモジュールを用いたStackの改良 前回 akashi-keirin.hatenablog.com の続き。 ちょっと改良した。 クラス名の見直し StringStackオブジェクトの各要素がStackStringというのは、余りにもわかりにくすぎるので、StringStackItemに改めた。少し長くなる…

UTF-8のテキストファイルを操作するクラス

UTF-8のテキストファイルを操作するクラス 作った。 何のために? foobar2000のプレイリストファイルのドライブレター部分を一括して書き換えるために。 決して仕事のためではない。 だから、全然「働き方改革」とは関係ない。許せ。 UTF8TextFileクラスのコ…

ファイルの更新日時を変更する

ファイルの更新日時を変更する ちょっと調べてみた。すると、 www.tipsfound.com コチラがヒット。曰く、 ファイルに日時を設定 FileSystemObject や VBA の標準機能には日時を変更する機能はありません。代わりに Shell.Application を使って更新日時の変更…

予約語を判定するFunction

予約語を判定するFunction 作った。 予約語リストを手に入れる 手っ取り早く kazusa-pg.com こちらの方がうpしているやつをいただいた。 ありがとうございます。 予約語を判定するメソッドのコード むつかしく考えずに……。 リスト1 標準モジュール Public …

VBAでwavを鳴らしたら珍現象が起きた話

VBAでwavを鳴らしたらち~んw珍現象が起きた 解決方法を知っている人がいたら、教えろ教えてください。 KitchenTimerクラス 前に、 akashi-keirin.hatenablog.com こういうものを作ったら、職場で割とウケたので、「残り時間を表示するカウントダウンタイマ…

ユーザが選択したファイル名を取得する(6)

ユーザが選択したファイル名を取得する これまで ユーザが選択したファイル名を取得する(1) ユーザが選択したファイル名を取得する(2) ユーザが選択したファイル名を取得する(3) ユーザが選択したファイル名を取得する(4) ユーザが選択したファイル名を取得…

ユーザが選択したファイル名を取得する(5)

ユーザが選択したファイル名を取得する 一応、前回 akashi-keirin.hatenablog.com のつづき。 FileDialogFiltersオブジェクトの設定 前々回のリスト1では、FileDialogFiltersオブジェクトを設定するのに Dim fpDialog As FileDialog Set fpDialog = Applica…

フォルダ構成だけをコピーするけどアルバムアート画像はやっぱりコピーする

楽曲データフォルダのフォルダ構成だけをコピーする(アルバムアートだけはコピーする) このとき akashi-keirin.hatenablog.com の続き。 フォルダ構成だけをコピーするんだけど、アルバムアートファイルだけはコピーする。 私の場合、アルバムアートは、全…

Worksheet.Copyメソッドの改良?

[Worksheet].Copyメソッドの改良? [Worksheet].Copyメソッドについて、「オブジェクト ブラウザー」で調べてみると、 Sub、つまりvoidメソッドであることがわかる。 たぶん、プロがやったことなので、あえてvoidメソッドにしたことには意味があるのだとは思…

再帰処理に初挑戦

再帰処理に初挑戦 前回 akashi-keirin.hatenablog.com の続き。 Foobar2000用の音楽フォルダ管理の話。 とりあえず、フォルダの中身はコピーせずに、フォルダ構成だけを別フォルダにコピーしたい。 任意のフォルダ内の子フォルダだけを別のフォルダにコピー…

TextFileクラスは今……

TextFileクラスは今…… akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com テキストファイルを扱うことがあって、久しぶりに引っ張り出してみたら、いろいろと不具合が見えてきたので、修正した。 TextFileクラスの現在の姿 かつてのTextFileクラス…

目障りなエラーチェックマークを除去する

目障りなエラーチェックマークを除去する 状況 セルに数字を文字列で書き込んだ場合、 このように実に目障りなことになる。 セルの左隅の緑色のスピードくじを一掃したい。 スピードくじを一掃するメソッド おなじみMicrosoft DocsのRange.Errors propertyの…

foobar2000の楽曲再生データを編集するためのモジュール

foobar2000の楽曲データをいじくるためのモジュール 作ったので公開。 コード foobar2000のPlaybackStatisticsでエクスポートできるXMLをいじくるためのメソッド集的なモジュールを作成した。 一挙公開する。(2019/9/16更新) リスト1 標準モジュールFB2KU…

抽籤マクロ(Excel)

順番の抽籤をする 研修会とかそういう機会に、発表の順序を決めるとき。 自薦方式をとったり、じゃんけんで決めてもらったりするのも良いが、Excelでやってみてもいいんではないか、と思った。 準備 次のようなシートを準備。 「抽籤!」ボタンをクリックす…

語順整序英作文問題を作成するマクロ

おれならこう書く(余計なお世話) Twitterを眺めていたら、 thunder0512.hatenablog.com こういうものを発見。 面白そうなので、〈おれならこう書く〉ってのをやってみようかな、と。 元記事の筆者さんにとっては、完全に 余計なお世話 だと思いますが、見…

ランダム座席表マクロ

ランダム席替えマクロ 作ってみた。 座席表の枠を作ったシートの機能なので、シートモジュールに生やしてみた。 準備 ランダムに並べるために、乱数発生用のメソッドを用意する。 今回は、標準モジュールにRandUtilと名前を付け、RandUtilモジュールのメソッ…

中途半端に規則的な数列

中途半端に規則的な循環数列を簡単に実現する Excelで座席表なんかを作る場合を想定。 表示用シートに こんな枠を作っておいて、VLOOKUPなんかで こういったデータ用シートから値を引っ張ってくる。 各座席の左上のセルに番号を入力したら、必要なデータが残…