t-hom’s diary

主にVBAネタを扱っているブログ…とも言えなくなってきたこの頃。

2017-03-01から1ヶ月間の記事一覧

オブジェクト指向の本質はカプセル化 ~継承も多態性も脇役にすぎない

ずいぶんと挑発的なタイトルをつけてしまったが、継承や多態性が重要でないなどというつもりはない。 ただオブジェクト指向の本質はどれかと言われると、やっぱりカプセル化だろうなと。 オブジェクト指向とは オブジェクト指向とは、データや機能をまとめて…

VBA Application.OnKeyを使い、F1キーで任意のアクティブブックのメインプロシージャを実行させる

VBA

今回の記事はF1キーを押したときに、今使用しているブックによって実行するプロシージャを分けるというもの。執筆のきっかけになったのはこちらの記事のコメント欄のやりとり。 chemiphys.hateblo.jp OnKeyマクロを記載したブックを閉じた後,そのショートカ…

VBA ヒープソートを実装 ~関数を沢山作って複雑な問題に対処する

VBA

私は長らくヒープソートというものが理解できなかったのだが、ついに今日、なんとか動くところまで実装できたので紹介しようと思う。ヒープソートを理解しようと思ったら、実装の前にまずヒープのノードが入れ替わるイメージを理解しておく必要がある。 そこ…

VBA Collectionを使って数値をランダムに並び替える

VBA

今回はn個の数値をランダムに並び替えるアルゴリズム。 元ネタはこちらの記事。 chemiphys.hateblo.jp上記はRnd関数のランダム性を利用したアルゴリズムで、出てきたSingle値の順位を付けることで結果的にその順位が重複のないランダムな数列になるというも…

VBA マクロの高速化のためのApplication設定をクラスモジュールにまとめる

今回はちょっと変わったクラスモジュールのテクニック案。 異端扱いされそうな気がするので、思いついた私自身、採用には慎重なのだけれど、アイデアとしては面白いと思ったので備忘録として公開してしまうことにした。さて、過去にPropertyプロシージャを使…

VBA マクロが遅い・速いという議論は、要件ありきの話

VBAのコードについて、よく、この手法は遅いから使うなという話を聞く。高速化万歳! またはその逆で、高速化のためにわかりやすさを犠牲にするなどナンセンスだ!という話も聞く。この記事では前者を「$バンザイ」、後者を「$ナンセンス」と呼ぼう。$バンザ…

VBA 変数で躓いた方に贈る、くどいくらい丁寧な変数の説明

VBA

さて、今回は初心者向けの記事なので、本文を「ですます調」で書くことにする。 途中でこのように緑文字でコメントを入れる。コメントはいつもどおり「だ・である調」で書く。本文は黒文字とする。プログラミングでは「変数(へんすう)」という道具を利用して…

変数・関数・オブジェクトが「いまひとつ分からない」という感覚の正体を考察

プログラミングでは日常生活であまり耳にしない言葉がたくさん出てくる。たとえば、変数・関数・オブジェクトなど。説明を聞いてスッと理解できる方もいれば、なかなか意味が分からずに苦労したという方もいるだろう。さっぱり分からないということはない。…

マクロ作成を安請け合いしないという選択

「こんだけVBAの記事を書いておいてよくもまぁ」という声が聞こえてきそうなタイトルである。 しかし安請け合いがよくないというのは常々思っている。執筆のキッカケになったのはこの記事。 akashi-keirin.hatenablog.com以下、序文の引用。 最近、自分には…

Pythonスタートブックのレビュー ~徹底して比喩表現にこだわった良書

先日から気になっていた書籍 Pythonスタートブックを買ってきたのでレビューしようと思う。Pythonスタートブック作者: 辻真吾出版社/メーカー: 技術評論社発売日: 2010/04/24メディア: 大型本購入: 19人 クリック: 199回この商品を含むブログ (59件) を見る…

VBA Excel表をHTMLのtableタグに変換するマクロ

VBA

先日メインサイトにXlRgbColor定数の一覧を掲載した。色順に並べたXlRgbColor定数の一覧表 - You.Activate今回はこれを作る時に使用したExcelマクロを題材に、VBAでExcel表からtableタグを出力する方法について記す。まずHTML化する前のExcel表を用意してお…

VBA プロシージャのオーバーロード機能(もどき)を自作する

今回のネタは@mmYYmmddさんのつぶやきから生まれた。感謝。さて、オーバーロードとは。 ふつう、Functionが取れる引数の数や型は固定されていてあまり自由が利かないのだが、引数の数や型によって処理を振り分けたい場合がある。 VariantやOptional、ParamAr…

VBA 入門書を再評価する ~ チャレンジングな5冊をピックアップして劇甘レビュー

私は普段マニアックな記事ばかり書いてるが、実は入門者向けの教材なんてのも書いている。さりげないアッピールはいやらしいので、堂々といこう。宣伝!みんな、見てねっ!EXCEL VBA 入門教材 急がば回れ!文法から覚えるやさしいVBA 入門ダウンロードはこち…

VBA パスカル記法を単語ごとに区切って配列で返すSplitPascal関数を自作する

VBA

今回はパスカル記法を単語ごとに区切って配列で返す関数を作成する。前回このような記事を書いたのだが、 thom.hateblo.jpこの記事を受けて@Dev_Clipsさん(サイト)からツイッターで「ImageMsoの"名前"の一致率も類似画像抽出に使えそう」とのヒントを貰った…

VBA GDI32で画像をピクセルごとに比較して類似画像を選り分けるマクロ

今回の記事は以下3記事の集大成である。 1) VBA アドイン作成で使用するリボンアイコンの組み込み画像(ImageMSO)をBitmapで一括保存する方法 - t-hom’s diary 2) VBAで2つの画像ファイルを比較して内容が同一かどうかを判定する方法 - t-hom’s diary 3) VBA …

当ブログは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。