-- 更新履歴 --

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

2007年

2007/11/25 Visual Basic「画面遷移を含めたシステムを作成してみます。」に「マルチドキュメントインタフェース(MDI)を改良してみます。」を追加しました。
一通りの機能は前ページのもので実装できているのですが、
・「親フォーム」の下にある「表示ウィンドウ数」が正しく表示されない時がある。
・メニューバーは「親フォーム」に集約されるのに、ステータスバーは集約されない。
SDI版のように、立ち上げ初期に「インフォメーション」を表示させたい。
など問題点と改善要望があったので、これらを改良してみました。
2007/11/18 Visual Basic「画面遷移を含めたシステムを作成してみます。」にさらに2ページ追加しました。
マルチドキュメントインタフェース(MDI)を試してみます。
マルチドキュメントインタフェース(MDI)を作成してみます。
の2ページです。先のページの方で実際にどのように動作するのかを説明しており、実行ファイルだけの圧縮ファイルをダウンロードできます。 後のページでは「MDI親フォーム」やメニューとなる「TreeView」の実装方法、この前で説明している単一ドキュメントインタフェース(SDI)との記述の違いなどを説明しており、サンプルプロジェクト自体の圧縮ファイルがダウンロードできます。
実は、マルチドキュメントインタフェース(MDI)は、記述上で結構面倒なものだろうと思っていたのですが、そうではなく簡単なものです。 この前のページのような方法だとメニューと業務フォームのウィンドウの位置あわせなどが面倒だったのですが、これが不要になってむしろ記述がシンプルになりました。
2007/11/11 Visual BasicMDBのサンプルのプロジェクトです。を修正しました。
2007/10/28に作成したばかりだったのですが、結構「お間抜け」状態でした。
当初、各画面は排他表示であるため「ShowDialogメソッド」を使っていたのですが、「ShowDialogメソッド」はその前に「最大化」にすると失敗します。 また、メインメニューで保持しているクラス情報をわざわざ各業務画面にコピーするような方法を採っていて、業務画面側でこの内容を変更するため、メインメニューに戻る時に書き戻すような対応になっていました。 これをメインメニューで宣言するクラスを直接参照する方法に変更したりしています。結果としてコードは2007/10/28時点より簡素化されています。
変更するきっかけは、呼び出した業務画面からメインメニューに戻る時のメインメニューの位置・サイズ合わせで「最大化」が伴うとうまく行かない問題があってのことだったのですが、 この点は「ShowDialogメソッド」を「Showメソッド」に変更しても解決しませんでした。 メインメニューを「最大化」した状態で業務画面を呼び出し、業務画面側で「最大化」を解除してメインメニューに戻るとメインメニューは「最大化」のままになってしまうという現象です。 「Location」「Size」「WindowState」の各プロパティの転記は何にもエラーにならないのに、実際には転記できていないという問題で、 いろいろやった結果、結果を確認しながら「何度も転記し直す」という方法で解決しています。
なお、「各業務機能の分散開発を考えてみます。」の方もこれと同様に「お間抜け」状態なのですが、こちらには先頭に案内文を追加しています。
2007/11/04 最近はどうもExcelVBAを離れてVisual Basicのの方の説明に追加に終始してしまっていますが、 今回は「配布の問題」にもインパクトがとても大きいClickOnceの説明を追加しました。 この「ClickOnce」というものは、2007/09/04に記載している私の所属する会社が採用した「ナルボ ワークフローEXがというワークフローのソフトが採用している技術で、これがなかったら知り得なかったのかも知れません。(最新技術もメジャーにならない場合もあるため、あまり関心を持っていなかったためです)
内容は、
ClickOnce」って何!?
ClickOnce」環境を作成してみます。
バージョンの更新を「強制」できるのでしょうか。
常時オンラインの社内ネットワーク環境限定なら。
の4ページになっています。「配布の問題」の方にも案内を追加しています。
Visual Basic」系のユーザーでは既存資産の問題もあるとは思いますが、相変わらず「Visual Basic 6.0」を利用していて「Visual Basic.NET」以降に関心も示さない方も多いようですが、本件を知ったら少しは気持ちが変わると思います。
2007/10/28 Visual Basic「画面遷移を含めたシステムを作成してみます。」にさらに2ページ追加しました。
MDBのサンプルをこの方法に当てはめてみましょう。
MDBのサンプルのプロジェクトです。
の2ページですが、これはSQLServerがない環境でも今回の機能説明を動かしてみることができるようにMDB化させたものですが、 単に同じものではおもしろくないので、このサイトのあちこちで紹介している「F-1ポイント計算」の各テーブル内容の一覧表示とポイント計算の表示の8画面をメインメニューから切り替えて表示させるようにしてみました。
MDBの中身も2007年最終戦まで登録してあります。
2007/10/21 Visual Basic「画面遷移を含めたシステムを作成してみます。」を追加しました。
長い説明なので
まず、メインメニューを作成します。
ログインフォームを追加します。
認証機能を実装してみます。
各業務機能の分散開発を考えてみます。
フォームを持つプロジェクトを追加します。
の5ページに渡っています。個々の画面機能は作成できても全体を「1システムとして構成させる」のにうまく行かないという向きには、1つの方法としていかがでしょうか。 ExcelVBAでユーザーフォームをを使って、システムを作るようなレベルの方でも操作手順も説明しているので、ご覧になってみて下さい。
2007/10/14 Visual Basic「カレンダー日付入力をクラスライブラリ(*.DLL)にします。」を追加しました。
このような開発が「無償版(Express Edition)」でもできてしまうのは驚きですが、機能を分割しての開発を行なう方法については以前のVisual Basic 6.0などに比べると数段良くなっていると思います。 Visual Basic 6.0が入手できなくなって、開発環境をExcelVBAに求めている人もかなり大勢いるのだと思いますが、ここで視点を換えてみるのはいかがでしょうか。
2007/10/07 「VBA応用」CDOでメール送信」に送信メールの「重要度」を指定する件についての説明を追加しました。
「VBA応用」「ブックのプロパティ取得」に指定フォルダ配下にある各Excelワークブックを順次探索してブックのプロパティを取得するサンプルを追加しました。
2007/09/30 「計算式」「「率」を帯グラフ状に表現する。」に「条件付き書式」での「塗りつぶし」を使って帯グラフを表現するサンプルを追加しました。
2007/09/09 「計算式」「「率」を帯グラフ状に表現する。」を追加しました。
2007/09/04 更新履歴とはちょっと話が外れますが、
このサイトの各ページの上端、下端にGoogleの広告が貼ってあるのですが、その中に時々、Excelでワークフロー」という広告が入ります。 これは、「ナルボ ワークフローEXというパッケージシステムの広告なのですが、実は、ちょうど現在、私の会社でこのパッケージシステムの導入作業を行なっています。 既存のExcel等で作成されているドキュメントを利用してワークフローを実現できるシステムで、サーバ間との通信はhttpプロトコルだけですからデータベースにもあまり負荷がかからず、セキュリティ面でもより安全な仕組みです。 プロダクトも新しい開発環境で作成されているので、ライフサイクルの問題で見ても現時点では非常に優位なシステムだと思います。 このようなシステムと併用することで、本来、ネットワーク上での共有ができないExcelワークブックも、有効な入力+表示/印刷の手段として用いることができると思います。
2007/08/12 「ダウンロード」「カレンダー入力用フォーム」に、ワークシート上で表示させる場合の表示位置を選択セルに合わせて設定させる方法の説明を追加しました。
2007/07/29 「ダウンロード」SQLServer2005テーブル定義ツール」を追加しました。
データベースの高度な使い方には対応できていませんが、テーブル定義書を作成して、そのテーブル定義書からテーブル作成スクリプトを出力させて、データベース内の各テーブルを一括して作成させることができるものです。
2007/07/08 Visual Basic 2005」の試用レポートの続きです。Excelへのデータ出力を試しました。
「動作確認までは[参照設定]で行なってみます。」
「問題なければ[実行時バインド]に移してみます。」
もう一つ、「VBA基本」「実行時エラーの対処方法」に複数のプロシージャを組み合わせて用いる場合のエラー処理についての説明を追加しました。
2007/07/01 Visual Basic 2005」の試用を始めました。そのレポートの続きです。
「トランザクション処理を使ってみます。」
SQLServer2005で試してみます。」
2007/06/17 Visual Basic 2005」の試用を始めました。そのレポートというようなものを載せることにします。
「まずは、カレンダー日付入力を移植してみます。」
「データベースを参照してみます。」
「続いて、更新登録機能を加えてみます。」
「あえて「旧ADO」を使ってみます。」
2007/06/10 細かい改善をいくつか行なっています。
「VBA応用」CSV形式テキストデータの読み込み(カンマ数不定版)」で、途中行に空行があると実行時エラーになる件を修正しました。
「ダウンロード」「メール送信(CDO利用)」の呼び出しサンプルを改善しました。 元々はメール本文をセルからTextプロパティで送信モジュールの引数に転記させていたのですが、Textプロパティでは長文の転記ができないため、Valueプロパティに変更しました。 併せて、ダウンロードされる圧縮ファイルには、複数セルの内容をつなげたり、シートに貼ったテキストボックスから引数に転記させるサンプルも追加してあります。
「ダウンロード」「モジュール自動入れ替え機能」を改善しました。 Excel側のセキュリティ設定を行なわないと「プログラミングによるVisualBasicプロジェクトへのアクセスは信頼性に欠けます。」という実行時エラーで止まってしまっていたものを、エラートラップを追加して「マクロセキュリティ設定が必要です。」というエラーメッセージに変更しています。 このエラーメッセージにはExcel側のセキュリティ設定の方法も併せて表示させるようにしていますから、エンドユーザにも対処方法が分かると思います。
2007/06/03 「VBA基本」「マッチングのサンプル。」後半に、多元マッチングの例として「日別売上から商品別売上を算出する」というサンプルを作成してみました。 「マッチング」の処理が作成できるといかに利便性が上がるのか、ということが多少でもお分かりいただけると有り難いです。
2007/05/20 「VBA応用」「テキストデータの追記書き出し」に、追記書き出しの例として「タイムレコーダ」を作成してみました。 共有フォルダへの出力で、クライアントPCのシステム時刻利用なのでセキュリティ面では良いものではありませんが、あくまで「サンプル」としてご覧下さい。
2007/04/23 「ダウンロード」「カレンダー入力用フォーム」などの「祝日表示機能」があるカレンダー入力フォームに使用している「祝日判定プロシージャ」の 54日の表記が「国民の休日」のままになっていました。振替休日のロジックなどは2007年以降の処理は満たしているのですが、祝日の表示名だけが誤っていましたので「みどりの日」に変更しました。
2007/04/22 「ダウンロード」「パスワードの自動生成」を再作成しました。
以前は「組み込み用モジュール集」の方に登録していましたが、単独利用の方が多いようなので「そのまま使えるツール集」に移動させました。 今回は、英字の大文字/小文字混在の指定や、キーボード上の文字キーの配置から使用する文字を制限してパスワード入力運用を円滑に行なえるようにするような配慮も加えました。
2007/04/15 「基本操作」「都道府県順に並べ替える」を追加しました。
「ダウンロード」「カレンダー入力用フォーム」を再作成しました。
シートやユーザーフォーム上で「カレンダー選択で日付入力できないか」のリクエストは結構多いので、関心がある方はご覧下さい。
2007/03/21 「VBA応用」SQLServer2005で試してみます。」を追加しました。
いままでMDBのみで解説してきましたが、SQLServer2005に移行させた場合にどれだけの記述変更が必要なのかを「SQL Server 2005 Express Edition」で実際のサンプルを使って試してみました。
2007/03/15 3月4日に「意見・質問」のページを一新して再作成しましたが、一部に不備がありご迷惑をお掛けしてしまいました。 ご指摘いただいた点は「メールアドレス非公開指定ではないのにメールアドレスを消去する警告が出る」という点で、この点のチェックスクリプトの不具合を修正しております。
2007/03/04 「意見・質問」のページを一新して再作成しました。以前のページは単純な「ウェブメール発信」的なものに初期値を表示させたたでのものでしたが、ASAHIネットCGIがいつの間にか新しくなっていたのを機に刷新しました。 今回のCGIは単なる「メール発信機能」ではなく、アンケート項目などをフォーム内に配置して、確認画面やメール文面にある程度のデザイン割り付けができるものなので、これを利用して内容の種別や使用するWindowsExcelのバージョンをラジオボタンやコンボボックスで選択してもらい、スクリプトで未入力のチェックを行なうようにしました。
それと、今まで困っていたのは発信者(質問者)側のメールアドレスの誤入力ですが、字類チェックはある程度した上で、送信時に発信者(質問者)にも同内容のメールを送信できるようにしてあるので、発信者(質問者)自身がうまく行っていないのが分かるようにしてあります。
「質問」だけでなく「意見」「感想」もいただきたいので一言でも良いですからご利用いただけるとありがたいです。(メールアドレスを入れないモードも用意しました)
「VBA応用」ADOExcelワークシートに接続」に、ADOXを使って不定シート名のワークブックからデータ抽出できるかの説明を追加しました。
「VBA応用」「セルのコメントの操作する。」に、Selectせずにコメントの書式を変更することや、図形の種類を変更する説明を追加しました。
このページは、このサイト立ち上げのころから更新がないページ(他にもたくさんあります...)だったのですが、久しぶりに見るとSelectSelectionを使って図形をつかんで書式設定しているもので、Tabキー、Enterキーなどで入力する場合に、選択セルが移動しないという始末でした。 これの「修正版」を追加することと、そのついでに、ただの長方形のコメントではなく、いろいろな形にできるようなサンプルも追加しました。
※各ページのアイコン指定(linkタグ)を一括変更しているため、ページ右上のタイムスタンプが全ページ変わっています。
2007/02/25 「VBA応用」CDOでメール送信」に、Office2003のインストールでCDOが動かなくなることがある件の復旧方法の説明を追加しました。 また、コード内のコメントで「参照設定:Microsoft ActiveX Data Objects 2.x Library」となっていましたが、これは不要なので撤去しました。
2007/02/18 昨年の春にExcelとは直接は関係ない「パソコン環境」というジャンルを追加したのですが、パソコンは自作しているような記事になっている割には、このサイトを立ち上げた頃からマザーボードやCPUは替わっていないという「お粗末」な状態でした。 いろいろ計画はしていたのですが、どちらかというと周辺機器の増強が先に回ってしまっていてそのようになってしまったのです。今回やっと「本丸」の入れ替えを行なうことができました。 少し経つとまた古い記事になってしまうのですが、この件を「自作パソコン」でレポートしています。
2007/02/12 「ダウンロード」「フォルダの参照」を変更しました。 新ユーザーインタフェースの方法について、いままで「お勧めしません」としていましたが、フォルダとして選択できないマイコンピュータなどで「OK」ボタンがクリックできてしまう件を回避することができましたので、この点を修正しています。
「パソコン環境」も数ページ手を入れていますので、関心がある方は覗いてみて下さい。
2007/02/04 いよいよ、あの「Windows Vista」と同時に「Office 2007(2007 Office system)」がリリースされました。
今回の変更では根本となるファイルの保存形式も変更されるため、Excel97以来の大きな変更となりました。 これに伴い表サイズの拡張をはじめとする大きな機能追加が行なわれましたが、一方で使えなくなった機能や変更となった機能があり、従来ユーザーに対する「互換保証」は、その説明のなさも含めて薄いものと言わざるを得ません。 「リボン」を始めとするユーザーインタフェースの変更で、従来モードを平気で断ち切ったことなどを見ると、継続利用する従来バージョンとの互換が必須となる企業ユーザーは無視されたとしか思えません。 特にこの機能追加点を重用視する場合を除いては、全面的に入れ替えられない場合は新規PCの導入でも「Office 2007(2007 Office system)」は選択されない方が良いとしか現時点では申し上げられません。 今さら、新規ユーザーの獲得が主目的のように見える変更点を前面に押し出してきて、ツールバーなど従来の利用方法も切り捨ててしまう仕様変更は、正直言っていままでの利用ユーザーの利便を奪うものでもあり、その真意を疑わざるを得ません。 こういうことを通じて、分野で第一位を築いていたソフトがその地位から転げ落ちていくことは過去例からもたくさん見られていたことなので、Excelがそうはならないことを祈るばかりです。
いずれにしても、今回のバージョンアップは、従来バージョンとの混在状態で仕事をされる環境では、はっきり言って良いことにはなりません。 いくつか外されてしまったことが明白となったものについては、それを利用しているページに「注釈」を入れておきましたが、こちらでは新しいExcelについて、端から端まで全ての動作確認をやっていくわけにもいかないので、 他の公表されているドキュメントなどを閲覧した範囲で既知のものについての注意に過ぎません。
Microsoft Office」は代々「共存インストール」ができるようになっています(サポート外ですが)。ですが、Web上の情報を見る限りですが、「Office 2007(2007 Office system)」を過去のバージョンの環境に「共存インストール」させると著しく動作が遅くなるようです。 このようなサイトをやっているので、その記事のためには「Office 2007(2007 Office system)」もインストールさせたいのですが、本件のため、もうしばらくは様子を見ることにします。
2007/01/28 「VBA応用」「年間カレンダーの作成」を追加しました。
カレンダー関連では、「営業日数(ユーザー定義関数)の計算」とか「カレンダーによる日付入力」などで取り上げている話題なのですが、 ワークシート上に作成する「祝日」を含めたカレンダーについては現在でも多くの質問が寄せられる状態なので、説明ページを追加することにしたものです。
2007/01/08 「VBA基本」「繰り返しや判断、分岐などは昔からあるBASICと同じ。」に「判断・分岐と繰り返しの組み合わせ」のサンプルを追加しました。
2007/01/03 「VBA応用」「強制的に[マクロ有効]で開かせる。」を追加しました。 「VBスクリプト」を併用するわけですが、その場合のサンプルを3種類用意して説明しています。
本年もよろしくお願いします。