-- 更新履歴 --

ここでは「誤字脱字の修正」「書式表現の訂正」「画像の差し替え(Windows、Officeのバージョン変更等)」といった微細な修正は記載していません。

2004年

2004/12/29 正月休を利用してサイトのデザイン変更に着手しています。元々、年寄りがやっていることで、センスはないままです。
Webデザイン関連のサイトを見てみると自身のサイトのやり方がCSSを使って共通化を図っているところまでは正しいのですが、 内容は中途半端で結局、ページ内に余分なタグがたくさんある状態です。
段落合わせや箇条書きにテーブルを使うなどは本来あるべきではないことだということが解ったことと、当サイトの利用者の大半が検索サイトから入ってくるということで、 現在のフレームページを廃止できるようなデザインに変更しようと模索しています。
これに伴い、サイトの更新はしばらくできませんのでご了承願います。
2004/12/19 「ダウンロード」「フォルダ一覧」のモジュールをアップデートしました。
ご利用の方は、再ダウンロードさせて下さい。
2004/11/28 皆さんのおかげで、トップページのアクセス数が40万件を超えました。
「VBA応用」「ユーザーフォームで郵便番号住所変換」を機能変更しました。
当初は空のMDBファイルを同梱していましたが、マクロ内から生成する方法に変更し、CSVからのデータ投入も毎行SQL文を編集してExecuteではなく、AddNewメソッドに配列を渡す方法に変更しました。(これでADOらしくなったでしょうか!?)
「VBA応用」Excelでデータベースを更新する。」についても、SQL文を編集してExecuteではなく、AddNew/Updateメソッドに変更しました。
2004/11/21 VBA関連の説明のコードの表示の貼り付け画像を直接コード記述に変更する作業で、「VBA基本」について完了しました。
2004/11/14 「ダウンロード」「モジュール自動入れ替え機能」と、「配布の問題」の関連説明を追加しました。「配布の問題」の方は実際のサンプルを更新しており、ページ内のコード説明と合っていないところがあったため、これも修正しました。
・当サイトのVBA関連の説明のコードの表示では貼り付け画像を使っていたためそのままコピーはできませんでしたが、これらは順次、直接Webページ上にコードを記述する方法に変更しております。「配布の問題」以降のページについてはこの変更作業は完了しています。
2004/11/10 103日に追加した「VBA応用」CDOでメール送信」で、 一部のPCで参照設定の「Microsoft CDO for Windows 2000 Library」が「Microsoft CDO for Exchange 2000 Library」と表示される現象が見つかりました。 元々、CDOは、Microsoft Exchangeと密接な関係であることが説明されているようですが、 今回のケースでは参照しているライブラリも違いますが、参照設定した状態で配布しても動作には影響はないようです。
今回は、MOUGの質問者から本件のご指摘をいただきました。
2004/11/07 「ダウンロード」「モジュール自動入れ替え機能」を追加しました。
「ダウンロード」「圧縮解凍(UNLHA32利用)」を修正しました。 内容としては、圧縮対象に「フォルダ」の指定を可能とし、指定した場合は配下の全サブフォルダ、ファイルをまとめて圧縮するようにコマンドを変更しました。
これと同様の機能を搭載している「メール送信(BASP21利用)」についても同様の変更を行なっています。
「VBA基本」「仕様要件からコードの組み立てを考える。」に解説を加えました。
「セキュリティ」の全般の画像をWindowsXPの画像に変更し、合わせて「デジタル署名」がExcel2002(OfficeXP)に与える問題の説明を追加しました。
2004/10/31 「ダウンロード」の「組み込み用モジュール集」の各ページの説明に組み込むコード自体を提示するようにしました。この作業を円滑に行なうためにモジュールをエクスポートさせたファイルをVBEの見かけに合わせてHTMLコードに変換させるプログラムを用意しました。
2004/10/24 「ダウンロード」「フォルダの参照」を再作成しました。
以前にShell.Applicationを使った方法の説明に切り替えていましたが、連続して利用する場合の前回選択フォルダを再現することがどうしても困難なため
以前に説明していたAPISHBrowsForFolderを使う方法をもう一度持ち出しました。コールバック関数を使うためExcel2000以降でないと動作しませんが、 Excel97では前回選択フォルダを再現できないものの、そのまま動作するように条件付きコンパイルを併用しています。
「フォルダ一覧」も同様に上記のフォルダの参照部分を変更し、説明を更新しました。
2004/10/19 103日に追加した「VBA応用」CDOでメール送信」で、 添付ファイルの処理に「複数の場合はカンマで区切る」と説明していたのですが、実際には複数ファイルの添付ができない状態でした。 実際には、AddAttachmentメソッド(?)を必要数分繰り返す必要があるので、SendMailByCDOを呼び出す上位からの仕様は変更せずに、SendMailByCDO内部を修正しています。 本件では、不具合のご指摘をいただいた今枝さんにお礼を申し上げます。
2004/10/17 「VBA応用」「データベース関連」Accessなしでデータベースを作成する。」を追加しました。
これにより、データベースファイル(SAMPLE.mdb)をMicrosoft Accessがインストールされていない環境で新規に作成することができます。
2004/10/11 「VBA応用」「データベース関連」ADOでのサンプルの一部についてINIファイルでデータベースファイル(SAMPLE.mdb)の所在を指定できるように変更しました。
これにより、データベースファイル(SAMPLE.mdb)をネットワーク環境に置いて、共有状態などの動作確認ができると思います。また、ADOの記述で読み出し処理なのに共有ロックで読み出す記述になっていたものをReadOnlyに変更しています。

「ダウンロード」に追加したExcelをダウンロードコンポーネントとして使う。」のサンプルで新規ブック転出の動作がこのページの主旨を解りにくくさせていたようなので、ダウンロード後に起動されるプロシージャの引数を追加して、新規ブック転出の有無をコントロールさせるように変更しました。

※いつもこのサイトのアクセス状態をトップページのカウンタで週単位で計測しております。これによって「見ていただいている」のバロメータを認識して、サイト更新の意識向上に向けておりました。 20042月以降は週当たり7,000件を超えることが何度もあるようになって、1日当たり平均1,000件/日という見込みになりましたが、 それでも8,000件/週に到達したことはありませんでした。
ところが、先週は突然、10,000件/週を超えてしまいました。大手検索サイトでデータベース関連の語句が登録されたことがヒットの要因のようです。もちろん、検索サイトからのリンクではトップページではなく、該当記事のページへ直接リンクされるので、そこからは来訪者がトップページに移動しないとカウントされませんが、やはり、データベースや外部データの取り扱いが多くの皆さんの関心事であることを実感させられます。
2004/10/03 「VBA応用」CDOでメール送信」を追加しました。
仕事先では、相変わらず「メール送信(BASP21利用)」を利用しており、全く問題なく動作しているので、この環境を変更することは今のところありません。 ですが、外部コンポーネントをインストールしなければならないのは事実ですから、CDOより配布に向かない方法であることも事実です。 ただ、私見ですが、動作の安定性で「BASP21」に軍配が上がるかなという感触はあります。
本件では後発なので、前例が少ない「参照設定」でのサンプルと、「参照設定」から「実行時バインド」への記述変更例も説明しています。
もう一つ、「VBA応用」Excelでデータベースを更新する。」を追加しました。
これまではデータベースからの参照のサンプルのみでしたが、今回はデータの追加や更新を行なうサンプルです。
2004/09/26 「VBA応用」「処理実行中の表現」「ダウンロード」に追加した「プログレスバーのクラス」をアップデートしました。
コントロールできるプロパティに「閉じる[×]ボタンの表示の有無」と「Escキーでの中断機能の有効/無効」を追加し、閉じる[×]ボタン(表示の場合)をクリックした時の動作はEscキーと同じになるように機能変更しました。
また、これの組み込みに関する説明が初心者には難しいようなので(VBA初心者がすぐ使えるとは思いませんが)、多少かみ砕いた説明を加えました。
さらに、これに伴って、「処理実行中の表現」にも画像を使った説明を追加して、時間が掛かる処理に何が必要なのかを考えてもらえるようにしました。

もう一つ、「VBA応用」「ユーザーフォームで郵便番号住所変換」を追加しました。
今まで、ワークシート上での郵便番号住所変換では「郵便番号から住所を自動入力」を紹介していましたが、動作がIMEの種類や設定に依存していましたし、ユーザーフォームでは動作しませんでした。
今回の方法は、「ゆうびんホームページ」から郵便番号データファイルをダウンロードして、これをMDBに取り込んで用いるサンプルですから、ワークシート上でも環境にあまり依存することなく利用できると思います。
2004/09/12 一周年には間に合いませんでしたが、トップページのアクセス数が30万件を超えました。
例によって、誰もお祝いはしてくれないでしょうが、一周年に引き続き、データベース関連の説明を追加しました。
「F-1ポイント計算」と銘打った割には、何の計算もしていなかったので、今回はワークシート上の機能は使わずSQL文の処理だけでF-1GPのポイント計算の、ドライバ順位、チーム(コンストラクターズ)順位を算出して上位からの一覧をシート上に展開するマクロサンプルを提示します。
WebアプリケーションとExcelの関連説明をExcelをダウンロードコンポーネントとして使う。」に追加しました。
2004/08/29 そろそろこのサイトも一周年を迎えます。
例によって、誰もお祝いはしてくれないでしょうが、たくさんのアクセスをいただいていることでもありますし、いただくメールで一番リクエストが多いデータベース関連の説明に着手いたしました。
そもそもデータベース関連は、いろいろなプロダクトや接続方法がある中で一部しか経験がないため、ここでは一つ一つ確認しながら説明していきますので、おつきあいいただくとともに、おかしい説明があればご指摘いただければ幸いです。
2004/08/01 「VBA応用」「配布の問題」の貼り付け画像をWindowsXP+Excel2002で再作成しました。
→この中で処理時間を計測しているものがありましたが、PentiumⅢ1GBからPentium4 2.8GBに変わったことで処理時間も約半分になりました。
2004/07/11 「VBA応用」「マクロの起動にプロシージャ名を表示させなくする。」を更新しました。
・前回、「ダウンロード」に追加したExcelをダウンロードコンポーネントとして使う。」に、Webアプリケーションに見立てたサンプルページを追加しました。
また、クライアント側スクリプトでExcelを操作するので、このためのIEに対する設定も説明しています。
2004/06/27 「ダウンロード」Excelをダウンロードコンポーネントとして使う。」を追加しました。
→このところ社内業務システムの構築をIIS/ASPで行なっているので、いままで培ってきたExcelの関する技術も生かせると思います。
2004/06/20 「意見・質問」の下段のメール送信で、メールアドレスや本文がないメールが送信されてしまうため、Javaスクリプトを加えてこのような場合は送信されないようにしました。
このところ更新ができていませんが、これは仕事で社内用Webシステムに取りかかっているためです。いただくご質問には答えております。
2004/05/30 ・おかげさまで、トップページのアクセスカウントが20万件を超えました。
「ダウンロード」「宝くじ共同購入配分計算」を追加しました。
「API関連」「メール送受信、添付ファイルの処理」と、「ダウンロード」「メール送信(BASP21利用)」をアップデートしました。「テストモード」と「本番モード」の切り替えをモジュール先頭にあるコンパイルスイッチの「0」と「1」の変更だけで切り替えられるように変更し、「テストモード」中は送信処理に渡る代表引数をメッセージ表示させるようにしました。(本番動作の機能内容に変更はありません。)
「VBA基本」の貼り付け画像をWindowsXP+Excel2002で再作成しました。
2004/05/23 「VBA応用」ブックのプロパティ取得に誤記があり修正しました。
→「BuiltinDocumentPropertiesプロパティは取得のみ」と説明していましたが、BuiltinDocumentPropertiesプロパティはBuiltinDocumentPropertiesオブジェクトを返すプロパティであり、値の取得および設定は取得したBuiltinDocumentPropertiesオブジェクトのValueプロパティで行なうものでした。
※下記の項目について、貼り付け画像をWindowsXP+Excel2002で再作成し、一部説明を見直しました。
「基本操作」(※前回の残り)
「計算式」
2004/05/16 ※下記の項目について、貼り付け画像をWindowsXP+Excel2002で再作成し、説明を見直しました。
「基本操作」(※一部未着手です)
Excel環境」(一部メニュー構成を変更しました)
2004/04/07に月当たりカウント順が10位とお伝えしましたが、その後のページ構成見直しで検索エンジンでの下位ページのヒット率が上がったため トップページでの来訪率が下がってしまったようです。4月末での順位は18位になりました。それでも広告設定以後は総ページビュー数が掴めるようになり、 4月1ヶ月では20万ビューを越えました。
2004/05/09 「VBA基本」RangeオブジェクトとRangeを返すプロパティ」「シートやブックを越えたRangeオブジェクト取得」を追加しました。
「サイトマップ」をトップページ内に移動しました。(旧URLからはリダイレクトで移動します。)
※今回より、貼り付け画像はWindowsXP+Excel2002で行なっています。
2004/05/03 ・ページ構成の見直し、変更以降、数件のリンク切れがあったので、これを修正しました。
「さくいん」の途中から表示状態が崩れている現象があり、これを修正しました。
  (ご利用の皆さまにはご迷惑をおかけしました。)
2004/04/25 各ページの先頭メニューを統一し、フレームページでなくても別のジャンルへの移動が簡単にできるように修正しました。
2004/04/18 ・進学・就職や異動の時期ですので、Excelに新たに関わる人のために「VBA基本」の構成を見直しています。一部ページを追加していますが、現状では中途半端なので新設案内は次回にまとめて行ないます。
「VBA応用」「同グループ先頭行以降は表示させない。」を追加しました。
2004/04/11 「基本操作」条件付き書式の応用例「印が付いた行を自動的に塗りつぶしたい。」「計算式を残して値だけ消したい。」を追加しました。
「VBA基本」「自分のブックはどれ?」を追加しました。マクロの自動記録のコードが理解できるようになったら読んで下さい。
「VBA基本」「コメントブロック」「セル選択範囲の取得」を追加しました。どちらもマクロ初心者に覚えておいてほしいワンポイントです。
2004/04/07 ・4月4日のページ構成を替える際にページ先頭に広告などを配置しましたが、画面がうるさいので下方に配置替えしました。お見苦しくて申し訳ありません。
・おかげさまでトップページのアクセスカウンタも16万件を超え「Excel関連リンク集(150以上のExcel関連サイトのアクセスランキング)」によると当サイトは月当たりカウント順で10位となりました。(この上はほとんど掲示板関連サイトなのでこれ以上上には行きません。)
2004/04/04 ※サイト全体のページ組み立てを全面的に見直し、変更しました。
・原則、1項目を1ページとしてコンパクトな構造にする。
  しかも、今後の更新に備えてフォルダ分類し、メンテナンス性も確保。
・ページ内の行き来を簡単にするため、各ページに簡易メニューを用意。
  (簡易メニューは大メニュー単位のスクリプト内に一本化することでメンテナンス性を確保)
  →選択中のページに表示されている内容にはのマークが表示されます。
・縦一列に読む人にも考慮して、各ページの一番下に次の項目へのリンクを用意。
・TOPから全てのページについて、ヘッダー部分を統一デザインにする。
・旧ページ構造での下層へのリンクに考慮して、旧ページ名のジャンプページを残す。
・全メニューを集めた「サイトマップ」を追加しました。
2004/03/21 「API関連」「メール送受信、添付ファイルの処理」と、「ダウンロード」「メール送信(BASP21利用)」をアップデートしました。アドレスなどの引数をセル範囲で直接渡せるようにしたり、圧縮指定のファイルの削除方法を指定するなどの機能追加と、不具合修正を含みます。
・メール送信同様に「ダウンロード」「圧縮解凍(UNLHA32利用)」をアップデートしました。セル範囲引き渡しの他、ウィンドウ制御をCaption渡しだけで行なえるようになっております。
「ダウンロード」の各項目にダウンロードのアイコンを新設しました。画像からのダウンロードは今までと変わりませんが、良く読まない人向けの配慮です。
・TOPページのタイトル画像をフレームページのOn/Offの切り替えに使用するように変更。(画面を広く使いたい場合にご利用下さい。)
「計算式」のページでページ間のリンクの一部が分割時に修正されていないものがありましたので修正しました。
2004/03/14 ・3月7日の変更に続き、動作レスポンスの向上のため、「さくいん」も読み仮名ごとの細かいページに分割しました。
・ページ分割に伴いトップページに作成していた「検索(スクリプト)」が機能しなくなりました。このため、検索機能は「Google検索」に任せることとしました。但し、独自ドメインではないので、検索サイトは「www.asahi-net.or.jp」としなければならず、検索を実行すると他のサイトも結果に表示されます。代表的な所では、永井善王さんのサイトなどが表示されるでしょう。
「ダウンロード」「計算式一覧」を修正しました。(結合セル対策→MergeAreaプロパティ)
2004/03/07 「計算式」「VBA基本」「VBA応用」を動作レスポンスの向上のため、大項目レベルにページ分割しました。
今までは、メニュー単位での大きいページ分割になっていて、最近の高速なネットワークで参照される方では問題ありませんでしたが、遅い回線ではページ表示にかなり時間がかかったものと思います。整理の都合もありご迷惑をお掛けいたしました。
内容の追加もすでに限界となっており、上記3メニューは中の大項目単位にページ分割させることで、アクセスのレスポンスも向上し、今後のコンテンツ追加にも対応できるので切り替えを行ないました。
掲示板などでラベルでリンクされているケースが多々あるため、以前のページ名はメニューとして残してあります。
2004/02/29 「VBA応用」「探し出しマッチングのサンプル(VLOOKUPと速度比較)」MATCH関数とINDEX関数でセル参照させる説明を追加しました。
「VBA応用」「自ブックとそうでないブックの見分け方」「開いているブックの一覧の取得」「転記の記述方法による処理時間の比較」を追加しました。
2004/02/22 「VBA基本」「仕様要件からコードの組み立てを考える。」を追加しました。かなり長い内容になりましたが、いよいよVBAを使ってある程度大きなプログラムを作成する場合の「組み立て」の考え方の説明を作ってみたわけです。VBAの関数、メソッド、プロパティは少し解ったという方でも、それで何かの仕組みを作ろうとしても一様に縦並びになって処理されるのでない場合の「組み立て」を考えるのは容易でないと思います。VBAで初心者を脱しようとしている方はぜひご覧下さい。
2004/02/18 「ダウンロード」「フォルダ一覧」「フォルダの参照」Windows9xではコンパイルエラーになることが判明しました。これはSHBrowsForFolderの動作の違いのよるものです。
2/8以降でダウンロード済みの方は再度ダウンロード願います。
2004/02/15 「ダウンロード」「フォルダ一覧」をバージョンアップしました。
①一覧上のファイルを関連付けプログラムで開く機能を追加しました。
②ファイルの更新日時、ファイルサイズの表示をセルコメントに入れる機能を追加、これらの追加機能を指定するダイアログ表示を追加しました。
「VBA応用」ColorIndex色見本」「2つのフォームを排他表示させるサンプル」Application.Quitの誤解」を追加しました。
2004/02/11 ・誰もお祝いしてくれませんが、昨日(2/10)アクセスカウントが10万件を突破しました。
「VBA基本」「シート上のセルの参照・転記」を追加しました。この説明はVBA初心者の方にはかなり面白い内容だと思います。10万件のお礼ということで、かなりのボリュームで追加しました。
2004/02/08 「ダウンロード」「フォルダの参照」を追加しました。
「計算式」「名前」を使う。を追加しました。
「計算式」「VBA基本」の細かい説明を一部追加しました。
2004/02/01 タイトルやメニューに使う画像を一新しました。サイトに訪れていただく方が増えてきましたので、配置などに影響しない範囲で、ない知恵を絞って多少でも「センス」が良くなる方向にしたつもりです。
「VBA応用」「CSV形式テキストデータの読み込み」にCSV形式テキストファイルについての説明を追加しました。
2004/01/29 ウィルスメールのご注意(重要)を追加しました。
今回のウィルス「Mydoom」は米国での発見からすぐに日本にも侵入しており、ウィルス対策ソフトの定義ファイルも追いつかない状態でした。
2004/01/20 Excelサイト連合スクランブルプロジェクトの呼びかけで 管理人の「プロフィール」のページを追加しました。
「リンク」を更新しました。
2004/01/12 「計算式」「相対参照」と「絶対参照」を理解する。にこれを理解する上での誤解についての説明を追加しました。
「配布の問題」「配布の問題」とは!?1つのExcelブックを大勢が開く場合の対処に図解説明を追加しました。
「ダウンロード」「フォルダ一覧」を若干バージョンアップしました。
 ①配列に取得したファイル名の並べ替えをクイックソートに変更
 ②フォルダ参照のルートフォルダを保存して次回に表示する(Excel2000以降のみ)
 ③Module表示ボタンを撤去(Excel2002以降のセキュリティ設定対応)
「ダウンロード」「計算式一覧」を若干バージョンアップしました。
 ①A1形式/R1C1形式の選択をユーザーフォームに変更
 ②保護シートの解除パスワード登録機能を追加
2004/01/04 「VBA応用」「ユーザーフォームの閉じる([×])ボタン制御」を追加しました。
処理パラメータをユーザーフォームで指定しOKボタンをクリックするようなケースを想定し、閉じる[×]ボタンをキャンセルとして扱ったり、閉じる[×]ボタンを不可にしたり、閉じる[×]ボタンを表示させなくするなどの方法をサンプルを使って説明しています。