Quantcast
Channel: t-hom’s diary
Browsing all 493 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

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

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

View Article


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

今回はn個の数値をランダムに並び替えるアルゴリズム。元ネタはこちらの記事。blog.powerpointvba.club上記はRnd関数のランダム性を利用したアルゴリズムで、出てきたSingle値の順位を付けることで結果的にその順位が重複のないランダムな数列になるというもの。たとえば1~5をランダムに並び替えたいとする。このようにRndを5回評価し、大きい順に順位をつける。回数 Rnd結果 順位...

View Article


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

私は長らくヒープソートというものが理解できなかったのだが、ついに今日、なんとか動くところまで実装できたので紹介しようと思う。ヒープソートを理解しようと思ったら、実装の前にまずヒープのノードが入れ替わるイメージを理解しておく必要がある。そこで、こちらの動画を視聴した。ヒープソートめっちゃわかりやすい!ん、理屈は分かったけど、これをいったいどうやって実装すれば。。ということでもう一本動画を視聴。[ソート...

View Article

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

今回の記事はF1キーを押したときに、今使用しているブックによって実行するプロシージャを分けるというもの。執筆のきっかけになったのはこちらの記事のコメント欄のやりとり。blog.powerpointvba.clubOnKeyマクロを記載したブックを閉じた後,そのショートカットを実行すると,OnKeyマクロを記載していたブックを自動的に開いてそのマクロを実行しようとするなるほど、特定ブックでのみ使用する...

View Article

Image may be NSFW.
Clik here to view.

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

ずいぶんと挑発的なタイトルをつけてしまったが、継承や多態性が重要でないなどというつもりはない。ただオブジェクト指向の本質はどれかと言われると、やっぱりカプセル化だろうなと。オブジェクト指向とはオブジェクト指向とは、データや機能をまとめて「モノ」として扱いましょうという方針を言う。オブジェクトってのはモノのこと。フランス語の「オブジェ」のほうがイメージしやすいかも。指向ってのは「はじめからその方向を指...

View Article


Image may be NSFW.
Clik here to view.

オブジェクト指向における「メッセージ」とは何か

現在主に認知されているオブジェクト指向私がオブジェクト指向というとき、それは基本的にC++から始まりJavaに受け継がれた、あのオブジェクト指向を指す。つまり、カプセル化、継承、多態性で説明されるアレだ。VBAは継承、多態性のサポートがほとんど無いけれど、その中心となる考え方はC++のオブジェクト指向から受け継いだものだと思われる。結論から言ってしまうと、このようなC++系統のオブジェクト指向におい...

View Article

Image may be NSFW.
Clik here to view.

VBA Rangeオブジェクトはシートを操作するエージェント

VBAで扱える代表的なExcelのオブジェクトにWorkbook、Worksheet、Rangeなどがある。ひとつのブックにはひとつのWorkbookオブジェクトが対応している。ひとつのシートにはひとつのWorksheetオブジェクトが対応している。ではひとつのセルに対応する固有のオブジェクトは?5秒、4、3、2、1、はい。Cellと答えたあなた。ぶっぶー。Rangeと答えたあなた。ぶっぶっぶー。実...

View Article

そんなに沢山のソートアルゴリズム、意味あるの?って方へ

みなさん本日は情報処理試験お疲れ様でした。(私は今回申し込みすらしてないけど)本当は試験前にこの記事を書きたかったんだけど文章悩んでるうちに試験が終わってしまった。まぁ今回ダメだった方、決意を新たにした方もいると思うので一応公開するか。さて、何かを学習しようとしたときに障害になる考え方がある。「それ、意味あるの?」ってやつだ。試験のためと割り切れる方は良いけど、試験でしか役に立たないような知識を無理...

View Article


Image may be NSFW.
Clik here to view.

VBA クラスモジュールでRangeの仕組みを説明する

昨日公開した以下の記事について、比喩ではちょっと難しいという声をいただいたので、今回はクラスモジュールを使って私が想像するRangeの仕組みを具体的なコードで解説しようと思う。thom.hateblo.jpまずはSheetの模擬クラスとRangeの模擬クラスを用意する。本物と同じ名前にしてしまうと、メインコードで使う際にちゃんと自作の方を使ってるの?という疑惑につながるので、オブジェクトの名前はオリ...

View Article


Image may be NSFW.
Clik here to view.

VBAでアホな実験 ~ Not演算子は何個連続で使えるか

二重否定文…それは時に控えめな肯定を、時に強い肯定を生み出す日本語のテクニックである。控えめな肯定の例「できなくもない」強い肯定の例「やらねばならない」なんてことを考えてたら、そういやNotって二個以上つなげても大丈夫なんかしらと、アホなことを思いついたので、これは検証せねばならない。実際にやってみた。Sub hoge() a...

View Article

Image may be NSFW.
Clik here to view.

VBA Boolean型をTrueやFalseと比較することの是非について

If文の条件式でBoolean型をTrueやFalseと比較することは昔から論争の種だった。たとえば以下のようなIf文。IfIsNumeric(x)=TrueThenIfIsDate(x)=FalseThenわざわざTrueやFalseと比較しなくても、このように書くことができる。IfIsNumeric(x)ThenIfNotIsDate(x)Then...

View Article

Image may be NSFW.
Clik here to view.

VBAからVBScriptへマクロを移植する方法

今回はVBScriptをやってみたいVBA使いの方へ、VBAで書いたコードをVBSに移植する方法を説明しようと思う。特にあまり知られていないであろう最初から移植性を意識したコードを書く方法について紹介する。執筆のきっかけになったのはこちらの記事。blog.powerpointvba.clubVBScriptの作り方テキストエディタでコードを書いて、拡張子をvbsとして保存するだけ。実行するにはダブル...

View Article

Image may be NSFW.
Clik here to view.

VBA テキストボックスの最適なフォントサイズは12ポイント

VBAでユーザーフォームをデザインする際、フォントサイズに気を配っているだろうか。まず、ふつうにテキストボックスを配置するとこのような外観になる。フォントはMS UI...

View Article


Image may be NSFW.
Clik here to view.

VBA テキストボックスで複数行表示させる場合の最適なHeightは連立方程式で求まる

前回、テキストボックスの最適なフォントサイズについて書いた。thom.hateblo.jpそこでテキストボックスのHeightプロパティを21に設定したが、今回はその根拠と複数行書ける場合の最適なHeight値の求め方を紹介する。Meiryo UI...

View Article

Image may be NSFW.
Clik here to view.

VBA 名前付き引数の正体はプロシージャの仮引数の変数名

今回は名前付き引数についてその概念と仕組みを紹介する。名前付き引数はVBAにおいて基本的な機能であり、マクロの記録で作ったコードでよく使われているが、正確に理解している方は少ないように見受けられる。かくいう私も初めて名前付き引数が何かを理解した時は目から鱗が落ちた気分だった。しかしすでに自分の中である意味常識化していてこれまで記事にするということを思いつかなかったのだ。名前付き引数とは名前付き引数と...

View Article


Image may be NSFW.
Clik here to view.

Javaでテキストファイルから特定文字列を含む行を除いてファイル出力

今回はJavaでテキストファイルから特定文字列を含む行を除外してファイル出力するコードを作ったので紹介。コマンドライン引数で複数のキーワードを指定して除外できるようにした。作成の経緯このブログのアクセスログを分析する際、いつもダウンロードしたcsvをそのままExcelで開いているが、ひと月あたり数万件のデータがあるので私の非力なマシンではちょっと厳しくなってきた。特に、検索エンジンからの流入を除いた...

View Article

Image may be NSFW.
Clik here to view.

VBAとマクロの違い ~ マクロの語源はギリシャ語

今回はVBAとマクロがどう違うのか、雑学的なお話。よくある勘違いが以下の2つ。マクロの記録によって作られたものがマクロだ。マクロとVBAは同じものだ。どちらも間違っている。巷で正確な解説を見かけないのはたぶん、厳密に話し出すと長くなるからだろう。あるいは説明を書いている本人もよくわかってないのかもしれない。別にVBAとマクロの違いについて正確に説明できなかったからといって特段困ることは無いけれど、よ...

View Article


Image may be NSFW.
Clik here to view.

業務マニュアルを作る際に重要な3つのポイント

今回は業務マニュアルを作る際に重要な3つのポイントを紹介する。私が重要だと思うポイントは、指示の明確さ、メンテナンス性、読みやすさの3点である。以下にそれぞれ詳しく解説する。指示の明確さ業務マニュアルは作業者に対し、何をすればよいのか明確に伝える必要がある。これまで見てきた指示文のスタイルはおおむね3パターンある。行為名で終わるパターン以下の例では「行為名」で終わっているためコンパクトにまとまるが、...

View Article

Image may be NSFW.
Clik here to view.

Wordでメンテナンス性の高いドキュメントを作る鍵はスタイルと描画キャンバス

前回、業務マニュアルを作る際に重要な3つのポイント(指示の明確さ、メンテナンス性、読みやすさ)について書いた。thom.hateblo.jp今回はこのうち、メンテナンス性について、具体的にWordをどう使えばメンテナンス性の良いドキュメントができるのかを紹介する。文書構造を考えるWordは直観的に操作できるのでその機能を知らなくてもある程度使えてしまう。これが最大の落とし穴である。よくある過ち過ちと...

View Article

Image may be NSFW.
Clik here to view.

Prism.jsの紹介と日本語文字列が認識されない件の対応方法

目次Prism.js(プリズム)とはPrismの入手Prismの使い方日本語文字列の問題Prism.jsを日本語文字列に対応させる方法Prism.js(プリズム)とはPrism.jsとはWebサイトやブログにプログラムのソースコードを掲載する際、要素ごとに色付けしてくれるツールである。以下は、Prism.jsの適用前と適用後のイメージ。私のWebサイトの一部では同種のツール「SyntaxHighli...

View Article
Browsing all 493 articles
Browse latest View live