2019-08-01から1ヶ月間の記事一覧

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

目障りなエラーチェックマークを除去する 状況 セルに数字を文字列で書き込んだ場合、 このように実に目障りなことになる。 セルの左隅の緑色のスピードくじを一掃したい。 スピードくじを一掃するメソッド おなじみ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でやってみてもいいんではないか、と思った。 準備 次のようなシートを準備。 「抽籤!」ボタンをクリックす…