見出し画像

EUCを作ろう!

私はデスクトップデータベースのエンジニアを生業としている。
EUC(エンドユーザーコンピューティング)の専門家としても多くの企業に支援をしてきた。
そこで、過去の経験も含めて、ExcelとAccessというソフトウェアについて、書いてみたいと思う。

今回はExcelとAccessの違いについて書いてみたいと思う。
先ず、Excelだが、表計算ソフトとしてWindowsにはVersion5.0から登場している。
ExcelがWindowsに登場する前は、表計算と言えばLotus1-2-3である。

Lotus1-2-3


使い方はExcelと全く変わらない。
まあ、私くらいの年齢の人はご存じだろうが、MicrosoftはLotus1-2-3の市場を奪うために、使い方を総て真似したのだ。
しかも、Lotus1-2-3で作成したモノは総てExcelで使えますというキャンペーンまでやっていた。
Windows95というOSが販売されてからWindowsMEと言うOS迄の間、Microsoftのオフィス製品はLotusの市場を奪うために、Excel、Word、OutLookなどの製品を無償で配っていた事もあった。

Excel2013


Excelの話しに戻すと、ExcelVersion5.0以前のVersionはあるのか?
と言う疑問が浮かぶ(いきなりExcelVersion5.0はあり得ない)。
ExcelはWindowsの前はマッキントッシュで使われていた。
私も始めてExcelを利用したのはマッキントッシュだった。
Excelの機能的な話しをすると、Excelは表計算ソフトウェアである。
セルと呼ばれるオブジェクトに値や数式を入れて演算結果やグラフ表示といった結果を表示する。
また、マクロ(VBA)と呼ばれるプログラムを組んで、セルの値を操作して自動処理を行う事が出来る。
Excelには扱えるデータの数がヴァージョン毎に決まっている。
Excel2003までは、行数が65536、列数は256
Excel2007以降では、行数が1048576、列数は16384となっている。
Accessはデータベースソフトウェアだ。

Access2013


Excelの様にTableというオブジェクトにデータを格納する。
Accessの場合、行列文字数に制限は無い。
但し、WindowsというOSにはExcelやAccessなどのオフィス製品のデータ容量に制限がある。
Office製品で扱えるデータ容量は最大2GBと決まっているのだ。
だから、ExcelもAccessも扱えるデータの容量は同じだ。
※Accessは分割してハードリンクする事によって2GB以上のデータを扱うことが出来る(以下にイメージを掲載。)。
ExcelやAccessは利用するパソコンのメモリの搭載容量で処理速度がかなり変わってくる。特にExcelは利用するデータを総てBookというファイルに格納しなければならない。
容量の大きくなったExcelのBookを開くのは、メモリの少ないパソコンでは時間が掛かる。
また、Excelの場合総ての処理がメモリ上に展開されて行うので、何かトラブルがあった場合は、総てのデータ及びマクロなどが損傷する可能性がある。
Accessの場合、一つのAccessFileの中にデータと制御系のオブジェクトを格納した場合のみ、Excelの様に読み込みに時間が掛かる。
しかし、Accessを使い慣れると、ハードリンクという機能を使う様になり、大きなデータはバックエンドDBとして、別ファイルに格納する。
制御系のAccessFileをフロントエンド、データのみのAccessFileをバックエンドと呼ぶことが多い。
※イメージとしては以下の図の通り。

Access制御イメージ


Excelのオブジェクトは、Book、Sheet、Cell、Module(VBA)、Macro(旧Excel機能)、フォーム(VBA機能)等がある。
Accessのオブジェクトは、Table、Query(SQLでの抽出機能)、Macro(自動処理)、Module(VBA)、Form、Report等が有る。
ExcelとAccessの視覚的な違いは、最初に立ち上げたときに、ExcelはSheetが表示され、Accessは各オブジェクトが剥き出しに表示される。
ExcelもAccessもデータの検索エンジンは同じなので、データの抽出の早さは変わらない。
ExcelとAccessの使い分けの基準になることは、システム化をするかしないかである。
システム化とは、個人で使うだけで無く、複数の人間が同じデータを使ってデータを利用するか否かである。
だから、一般的に個人宅でAccessを導入している人は少ない。
但し、データ件数が数万件レベルで複数のデータを同期させる様な場合、Excelでは管理しにくくなる。
そうした場合にAccessを導入すると便利だ。
Excelには無いが、Accessにはリレーションシップという機能がある。
Table間の共通した項目に関連性を持たせてリンクさせる機能だ。
また、データベースはデータベースの原子性という機能があり、設定した項目を主キーとした場合、そのキー項目は絶対に重複しない。
Excelに比べてデータの信頼性が高いのだ。
こうした違いを踏まえて、ExcelとAccessの使い分けをすると良い。


いいなと思ったら応援しよう!