VBA自作メソッド

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なんかで こういったデータ用シートから値を引っ張ってくる。 各座席の左上のセルに番号を入力したら、必要なデータが残…

TextFileクラスの改良

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

Personsクラスの改良

Personsクラスの改良 前回 akashi-keirin.hatenablog.com のPersonsクラスをちょこっとだけ改良する。 PersonsクラスのextractNamesメソッドは、その名のとおりPersonインスタンスのNameプロパティの値だけを指定したセルを開始位置として転記するものだった…

Rangeオブジェクトが矩形かどうかを判定する(Excel)

Rangeオブジェクトが矩形かどうかを判定する Rangeオブジェクトに入っているセル範囲は、必ずしも連続した矩形領域であるとは限らない。 [Ctrl]を押しながら選択すれば、飛び地状態で選択できるし、飛び地状態で一つのRange型変数にぶちこむことだってできる…

次の素数を取得するFucntion

次の素数を取得するFunction 数字を受け取って、その数字よりも大きい最小の素数を返すメソッドを作った。 コード リスト1 標準モジュール Private Function getNextPrimeNumber( _ ByVal targetNumber As Long) As Long Dim ret As Long ret = targetNumbe…

素数かどうかを判定するFunction(2)

素数かどうかを判定するFunction(2) 前回 akashi-keirin.hatenablog.com をちょこっと修正。 割り算の試行は平方根近似値までで良い 高校生が実に明解に説明してくれていた。 www.higashi-h.tym.ed.jp 富山県立富山東高等学校の諸君、本当にありがとう!!!!!!…

素数かどうかを判定するFunction

素数かどうかを判定するFunction 久しぶりの投稿。 素数かどうかを判定するメソッドを自作してみた。 その前に前回の記事の恥ずかしい誤りを訂正せえよ、と思っていますが。 コード ごちゃごちゃなしで、書いたコードをぶちまける。 リスト1 標準モジュール…

オブジェクト名を指定してWorksheetオブジェクトを取得するFunction(Excel)

オブジェクト名を指定してWorksheetオブジェクトを取得するFunction(Excel) CodeNameプロパティというものがある akashi-keirin.hatenablog.com コチラの記事のコメント欄が炎上wしたことにより、CodeNameというプロパティの存在を知った。 CodeNameプロパ…

シート名の変更を検知する(Excel)

シート名の変更を検知する(Excel) 各所から集めた大量のExcelブックを処理するとき、配布した様式ブックに保護をかけ忘れると、それはもう、好き放題にシート名をいじくられるw マクロで処理しようにも、シート名とかシートの順序を変えられると、ちょっと…

自身のインスタンスを返すクラス

自分自身のインスタンスを返すクラス Attribute VB_PredeclaredId = False のとき クラスモジュールをデフォルトで使うときは、 Attribute VB_PredeclaredId = False である。 このとき、クラスのメソッドやプロパティは、インスタンス化した後でないと利用…

ファイル名が重複しているときに自動ナンバリングしたファイル名を返すメソッドの改良

ファイル名が重複しているときに自動ナンバリングしたファイル名を返すメソッドの改良 akashi-keirin.hatenablog.com これの改良。 改良後のコード 前回は、イマイチFileSystemObjectを使いこなせていなかったので、FileSystemObjectの実力をもっと活用しよ…

foobar2000の日付時刻データをDate型の値に変換する

foobar2000の日付時刻データをDate型の値に変換する Date型の値を、foobar2000独自の日付時刻文字列に変換するのは akashi-keirin.hatenablog.com で作成済み。 今度は、その逆をやってみる。 考え方 foobar2000のPlayback Statisticsでは、再生日時を18ケタ…

ファイル名が重複するときに自動ナンバリングする

ファイル名が重複しているときに自動ナンバリングしたファイル名を返すメソッド 頭の体操に作ってみた。 ExportAsFixedFormatメソッドで新規ファイルを作成したときなんかに、同一名のファイルが存在したときの対策用。 たとえば、保存先に「ち~んw.pdf」…

ワークシートを任意の名前の軽量PDFにする

軽量PDFに任意のファイル名を付ける ワークシートの軽量PDF化 ExcelのワークシートをPDF化するとき、ExportAsFixedFormatメソッドを用いると、非常に軽快に動作する反面、出来上がったPDFドキュメントのサイズが異様に大きくなってしまう。 JUST PDF等のPDF…

foobar2000のPlayback Statisticsを編集するマクロ(2)

foobar2000のPlayback Statisticsのデータを編集するマクロ akashi-keirin.hatenablog.com とりあえず成果物を晒す 細かいことは後回しにして、ひとまず今回の成果物を晒しておくことにする。 バグ対策とか、操作ミス対策は(個人的に用いるツールゆえ)不十…

Property Get プロシージャを作るFunction

Property Get プロシージャを作るFunction 最近やたらPropertyを多用しているので、Propertyプロシージャを書くのが面倒になってきた。 特にProperty Getなんて同じパターンの繰り返しが多いので、Functionにしてやった。 Property Getを作るFunctionのコー…

同じ値のセルを結合する~再び~

同じ値の連続セルを結合する 年度末の後始末及び次年度の準備をしていく中で、だいぶ前 akashi-keirin.hatenablog.com で作成したメソッドに重大な欠陥があることに気付いたので、根本からやり直した。 重大な欠陥 前回のやり方は、セルを上から順にスキャン…

ルビと親文字の距離を調整する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です。 ルビの割付の変更 たとえば、 この「月面宙返」にルビを振る。 「ルビ」ダイアログボックスにこのように設定…

乱数を作るクラスを改良した

乱数を作るクラス ランダムに並べ替える作業というのは滅多にないのだけれど、絶妙に忘れかけた頃に発生するので、 akashi-keirin.hatenablog.com このときにクラスまで作っていた。 んで、改めて見直してみたら、イマイチやなあ、と(笑)。 そんなわけで、…