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

Worksheetクラスを継承したクラスを作る 超絶アホ企画。 少しオブジェクト指向をかじったVBAerなら、VBAのクラスモジュールに「継承」がないことは当然知っているだろう。 だから、あくまでも「擬似継承」である。 っていうか、ほとんど嘘である。 擬似継承…

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

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

Worksheet.Copyメソッドの改良?

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

再帰処理に初挑戦

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

FileSystemObjectでフォルダをコピーするときの注意

FileSystemObjectでフォルダを作る 当方、10年以上前から音楽ファイルの再生にはfoobar2000を使っています。 CDから楽曲データをリッピングしてエンコードするときに、勝手にフォルダを作っていくタイプのソフトウエアにどうしてもなじめなくて、面倒だけれ…

TextFileクラスは今……

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

文字列のソート

文字列をバブルソートする ちょっとやってみた。 String型配列をソートして返すFunction とりあえず、ひととおりコードを晒す。 リスト1 標準モジュール Public Function getSortedArray( _ ByRef tgtArr() As String, _ Optional ByVal isAscending = True…

FileSystemObjectによるファイル取り出しの順序

FileSystemObjectによるファイル取り出しの順序 おなじみ、OFFICE TANAKAのコチラのページによると、「Dir関数が返すファイルの順番」は、 ディスクのフォーマットによって異なります。最近主流のNTFSでフォーマットされているディスクでは、ファイルが保存…

引数二つのProperty

引数二つのProperty 前回 akashi-keirin.hatenablog.com 作成したCaptionBoxクラス。 テキストボックスの塗りつぶし色と透過性という基本的なセッティングをするのに、たとえば With captBox.Fill .ForeColor.RGB = vbBlack .Transparency = 0.4 End With と…

PowerPointのスライドにキャプションを置く

PowerPointのスライドにキャプションを置くクラス PowerPoint初心者です。仕事でもほとんど使う機会がなかったので、そこらへんの素人以下です。 スライドショー的なPresentation そんなPowerPointど素人の私が、画像中心のPresentationを作ることになった。…

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

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

Enumの謎挙動

Enumの謎挙動 前々から気になっていたこと。 小ネタです。 誤入力防止のための記法 変数名などの誤入力に気づきやすくするために、パスカル記法やキャメル記法を使っている人はかなり多いと思う。 VBAの場合、変数名を、たとえばtooYoungToDieと宣言しておけ…

Enumの名前の重なり

Enumの名前の重なり VBAでEnumを使い始めの頃、その当時はPublicとPrivateの使い分けがいい加減だったこともあり、ずいぶん名前の重なりに苦労した。 そこで、最近は列挙体名、要素名それぞれにシンプルなルールに基づいて接頭辞を付け、極力重複が発生しな…

モジュール切り分けの一つの考え方

モジュール切り分けの一つの考え方 長くVBAをやっていると、「このメソッドは、他でも使い回せそうだなー。」という場面に結構出くわす。 今回は、モジュールを切り分けるときの一つの考えかたをば。 文字列操作メソッドに特化したモジュール 文字列を操作す…

Len関数の返り値

Len関数の返り値 Len関数に文字列ではなく数値を渡してしまい、意図しない値が返っていたために小ハマりしてしまったので、反省も込めて覚え書き的に記しておく。 Len関数に数値を渡すとどうなるか たとえば、次のようなコードの場合。 Dim hoge As Long hog…

Worksheet.PageSetup.FitToPagesTall/Wideの設定はリアルタイムで反映されない

[Worksheet].PageSetup.FitToPagesTall/Wideの設定はリアルタイムで反映されない 知ってました? 私はこのことに気づかなかったせいで、お盆の期間だというのにドハマりして残業してしまいました。 状況 次のようなシートがあるとする。 四隅のち~んwを一…

Boolean型Function作成時のコーディング規約

Boolean型Function作成時のコーディング規約 Forループで回すときなんかに、そもそも処理をすべきなのかどうかを判定し、処理の必要がなければ飛ばす、ということがよくある。 処理の要不要を判定する条件が単純なら、ブロック内でIf分岐すればよいが、判定…

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

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

抽籤マクロ(Excel)

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

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

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

ランダム座席表マクロ

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

中途半端に規則的な数列

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

標準モジュールのPropertyとは

標準モジュールのPropertyとは 標準モジュールにもPropertyを生やすことができる。 では、標準モジュールのPropertyとFunctionは何が違うのだろうか。 Fucntionならば、同名のPublicなものが他のモジュールにない限りはメソッド名だけで呼び出せる。Property…

TextFileクラスの改良

TextFileクラスの改良 「改良」なのかどうかはわからんが。 ちなみに、元祖TextFileクラスについては、 akashi-keirin.hatenablog.com コチラをどうぞ。 改良後のTextFileクラス リスト1 クラスモジュール 'オブジェクト名はTextFile' Option Explicit 'Con…

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

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

FileSystemObjectを用いてテキストファイルを読み込む

FileSystemObjectを用いてテキストファイルを読み込む 〈FileSystemObject使い宣言〉をしていた(いつ?!)にもかかわらず、 akashi-keirin.hatenablog.com このときは、テキストファイルの読み込みにFileSystemObjectを利用していなかった。 深く反省して…

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

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

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

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

テキストファイルの内容を保持するクラス

テキストファイルの内容を保持するクラス 処理に必要な値の中で、〈ほぼ静的なんだけどちょっと動的な値〉、つまり、滅多に変更することはないのだけれど、たまに変更が生ずるような値があると、実にめんどくさい。 これがExcelの場合だと、設定値書き込み用…

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

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