・Oratorさんより頂いた指摘を反映。「VBのQuiz第一段」の解答の解説、「VBとVBScriptの違い」「データ型にまつわるFAQ」に補足を追加。 2003/07/19
・「BitBltとAutoRedrawとRefresh」「VBとVBScriptの違い」内のリンク切れ、リンク変更があったので修正。2003/02/06
| タイトル | 内容 | キーワード |
| R,G,Bに分けてグラデーション | BackColorプロパティなどの色をR,G,Bに分割。 また、そのR,G,BでPictureBoxにグラデーションをかける | GetSysColor(API)、 DivCol(自作)、 DrawBKGrad(自作)、 グラデーション、 システムカラー |
| 文字列を桁数で整形 | 桁数(文字数)指定で文字列を整形。不足部分は指定文字で埋める。右寄せ、左寄せ、中央寄せも指定可 | 文字列整形、FormatSpace(自作) |
| 2つの日付から期間を年、ヶ月、日で返す | 2つの日付から期間を年、ヶ月、日の形で求める。例えば、年齢の計算に使える
| 日数計算、 年齢計算、 CalcTerm(自作) |
| VB5でSplit関数 | VB6のSplit関数をVB5で実現。VB5では配列を返せないので、Collection、Variant、参照渡しを使ったそれぞれの方法で作成
| 文字列分割、 SplitC(自作)、 SplitV(自作)、 SplitS(自作) |
| VB5でReplace関数 | VB6のReplace関数をVB5で実現。VB6のヘルプにある仕様は満たしています。また、他所で見かけるReplace関数より速いです。2、3種との比較では長い文字列のとき20倍〜100倍くらいの速度差
| 文字列置換、 Replace(自作)、 VB6互換 |
| 真・VB5でSplit関数 | VB6のSplit関数と互換関数をVB5で実現。VB5では直接は配列を返せないので、Variantで配列を返します。インターフェースをVB6に合わせてあるので、ほぼ同じように使用可
| 文字列分割、 Split(自作)、 VB6互換 |
| VB5でJoin関数 | VB6のJoin関数と互換関数をVB5で実現。Join関数はSplit関数と対になる関数。Replace関数同様の手法を使っているので、そこそこ高速です
| 文字列結合、 Join(自作)、 VB6互換 |
| VB5でStrReverse関数 | VB6のStrReverse関数をVB5で実現。他のVB6互換関数より若干処理が重いですが、64kbyte程度までなら十分実用に耐えると思います
| 文字列反転、 StrReverse(自作)、 VB6互換 |
| VB5でInStrRev関数 | VB6のInStrRev関数をVB5で実現。開発当初は内部でStrReverse関数を使用して実現したので、あまり速くなかったのですが、その方針を止めて10倍くらい速くなりました。(速度面で、InStr関数を使うのと同じ感覚で使っても問題ないと思います。というかInStr関数ってかなり高速(^^;)
| 後からの文字列検索、 InStrRev(自作)、 VB6互換 |
実験やらお遊びやらのちょっとしたコードです。コメントなし、変数名等の付け方も適当なので役立つかどうかは不明ですが、
とりあえずお蔵入りも勿体ないなと思うのでここに載せます。著作権表示していないサンプル等ありますが著作権は放棄していません。念のため。
| タイトル | 内容 |
| ScoreList ver1.0 | ゲームなどありがちな、スコアのランキング表示のサンプル。新しい得点が何位に入るのか?また、下位のデータをランクダウンさせるには?といった基本的ロジックが入っています。5位まで表示し、内部的には10位までを保持するようにしています。内部保持データ数と表示数を分けることで少しばかり改良に対しても柔軟です。(2002/09/03) |
| StopWatch ver1.0 | ストップウォッチのサンプルです。時刻表示、スタート、ストップ、リセットボタンをコンパクトに配置。1時間まで計測できます。最前面表示処理がしてありますので、ちょっと時間を計るだけなら十分使えます。仕事で使ってます。(2002/09/03) |
| Puyo ver0.01 | ぷよぷよクローンの骨格的なサンプルプログラムです。ノーコメント。プログラムの作り方自体もちょっと雑かも。 |
| clsUndoRedo ver0.2 | TextBoxに無限アンドゥ、リドゥの機能を付加する自作クラスです。Undo、Redoをpublicなメソッドにしました。(2001/02/08) |
| KeyType ver0.21 | キータイプソフトは数あれどどれも入力方法が中途半端。ローマ字入力でIMEやAtokで入力できるアルファベットの組み合わせならどれでも(”ちゃ”ならcha,cya,tyaのように)入力できた方がいいと思います。今回の実験の成果物はその入力を引き受けるクラス群とそれをとりあえず使ったサンプルです。単語を扱うclsWordと1固まりの文字(あ、ちゃ、ぎょ、etc)を扱うclsUnitCharの2つのクラスがあります。ver0.21でローマ字入力だけでなく、かな入力もサポート。また、ローマ字入力の入力方法が複数ある場合にどれを優先的に表示するかも設定できるようになりました。仮EXEも付けてます。 |
| clsMeshMng ver0.01 | 自作の格子クラス(clsMesh)と格子管理クラス(clsMeshMng)を使って表のような処理のはしりを実現。各クラスも作りかけだし、表っぽい処理も中途半端なやっつけしごとですが、とりあえず公開。 |
| BitBltCapture | BitBltとFormのhDCを使った裏技による画面のキャプチャーです。この挙動(BitBltでデスクトップのコピーを撮れる)ことの根拠がわかっていませんし、何より正式な方法ではないのでお勧めはしません。でも、キレイにキャプチャーできてしまうんですねぇ、これが。後、PictureBoxをクリックしてマウスを動かすことで、PictureBoxのサイズを大きくしたり、小さくしたりできるという意味のないおまけ付き! |
| AnaClock | FormとTimerコントロールのみ使用のアナログ時計。アナログ時計 刻はShapeコントロール使っているので別物です |
| calendar | Formのみ(しかもLoadイベントのみ)で作った今月のみ表示のカレンダーです |
| tokei | (だいたいで)ミリ秒まで表示する最速のデジタル時計。最小化するとタスクバーで時計が表示されますが、ミリ秒までやるとさすがにタスクバー上ではちらつきます |
| Picture2Label | PictureBoxでLabelの代用をしてみたサンプルコード |
| TestTriangle | ある点が三角形の内部か外部か線上かを真面目な数学的な方法で判定します。精度の問題で100%完璧に判断できるまでには至っていません |
| Marqee | IEのMARQEEタグのような、あるいは、電光掲示板のようなことをやってます。表示文字に全角が含まれるパターンには対応してません。 |
| clsProgress | プログレスバーの代わりになるクラスです。PictureBoxで代用します。手抜きですけど、言い換えればシンプル |
| DragForm | VB標準機能だけで、タイトルバー以外のところを持ってフォームを移動するコードです。でも、ぶれるので、素直にAPIのReleaseCapture関数とSendMessage関数を使いましょう。APIのサンプルならそこら辺に転がってます。 |
| FontGrad | Tipsにある「R,G,Bに分けてグラデーション」を使って、1文字あたり32ピクセルで0〜9の文字を作成するプログラムです。マスク処理用の画像も同時に作成します。ただし、セーブ機能すらついていないので、真にただのサンプルです。 |
| HutidoriPrint | 縁取り文字を出力するPrintEx関数とそのサンプル。 |