2019年12月29日日曜日

ビジネスでウインドウズを使い続ける限り、VBAが絶対なくならない理由があるよ - ADO接続(ActiveX Data Objext)


エクセルもどきでも、オフィスPCには絶対にインストールしているはずです。
作表アプリ、つまりスプレッドシートを作るのは、デスクワークなら必須だな。

まがい物と言うわけでもないが、リブレオフィスみたく互換ソフトもあります。
操作はエクセルに似ていますが、使い勝手はエクセルの方が上でしょう。

しかも、エクセルにはVBAという付属のプログラミング言語が優れモノだ。
ウインドウズAPI(機能)を共有で操作する辺り、さすがMicrosoft。

この辺の使いこなしまでできるようになると、エクセルのシートが逆に邪魔。
シートも表示せずにVBAだけ起動させたり、データをメモリに取込むとか。

プログラムを書いていくうちに手が込んできて、シートは結果の表示のみ。
データなんて、プログラムの基礎中の基礎、配列に落とし込むようになる。

ここまで来たら、シート上にセル値を別のセルにコピーするのもバカらしい。
なので、ワークシートは表示を扱うだけに特化するようになってしまった。

要するに、エクセルの入ったPCは、データを表示する単なる端末かもな。
そんな風にも思えてしまって、VBAにあるADO接続なる機能がすごい。


単純に言うと、データベースごとに異なるアクセス方法を標準化したんだ。SQL、Access, Oracle、果てはエクセルブックもデータベース化で接続。

つまり、複雑なアクセス状況を統一する動きの結果とも言えるでしょう。
まあ、現状はまだ完全にこの機能を統合したとは言えないかもしれない。

でも、VBAにあるADO接続でアクセスするとPCが端末化するのも事実。
エクセルが入っていれば、データベースのアプリはインストール不要なんだ。

そんな方針を、マイクロソフトが打ち出したのは、二十年以上も前の事。
ずいぶん昔のことだったんだと思いますが、VB6.0の時代の話ですな。

このVB自体は、オフィスの中にVB7.0として継承されているのが有難い。
使いこなすと、エクセルのシート表示を端末出力と見立てられるんだな。

だから、データベースのアプリケーションは、できればADOで作成したいよ。
インターフェイスの拡張性が計り知れないと思うし、VBAは意外に簡単。

社内でADOのシステムエンジニアを養成すれば、外注する必要もない。
それで、アクセスのデータベース(テーブル)の接続コードを公開します。

コードの閲覧は、ここをクリックでダウンロード(pdfファァイル)

サンプルデータは、ここをクリックでダウンロード(accdbファイル)

注:マクロのブックファイルとデータは、同一フォルダーに格納のこと。

データを単純な閲覧画面にして見せたいときの見本で、作ってみました。
保存もさせないしコピペもさせたくないから、起動時にリボンは非表示。

他のブックが開いていると保存できたりするので、一つしか開けないとか。
加えて、データを参照で読込んだ後、接続を切るので改変はできない。

VBAのちょっとしたアイデアでコードを書いたので、用途は広がると思うよ。
というわけで、ADO接続で、VBAは絶対に廃れないと思う今日この頃。

ネットでエクセルのマクロ記述を紹介するサイトも、ここ数年、このADO接続に関わる投稿や紹介が目立って多くなったので、自分にとってもこのノウハウを取得できたということで、老後にアルバイトができるかもしれないとほくそ笑む自分がいるのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



0 件のコメント:

コメントを投稿