2024年10月10日

ExcelとAccessの違い

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





先ず、Excelだが、表計算ソフトとしてWindowsにはVersion5.0から登場している。
では、それ以前のVersionはあるのか?
Windowsの前はマッキントッシュで使われていた。
私も始めてExcelを利用したのはマッキントッシュだった。
Excelは表計算ソフトウェアである。
セルと呼ばれるオブジェクトに値や数式を入れて演算結果やグラフ表示といった結果を表示する。
また、マクロ(VBA)と呼ばれるプログラムを組んで、セルの値を操作して自動処理を行う事が出来る。
Excelには扱えるデータの数がヴァージョン毎に決まっている。
Excel2003までは、行数が65536、列数は256
Excel2007以降では、行数が1048576、列数は16384となっている。
Accessはデータベースソフトウェアだ。
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をバックエンドと呼ぶことが多い。
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の使い分けをすると良い。



Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: