中級者のためのExcel エクセルマクロVBA:Accessデータベースとつなぐその1
さて、ここからはちょっと初心者よりはできてプログラミングも結構わかってきたよ。って人が対象です。エクセルでは本当にマクロを使うと色々なことができるのですが、それをさらに進化させて他のアプリケーション。特にAccessデータベースとの連携についてやってみることにします。たぶん長くなるのでその1です。
データベースとは?
簡単に言うとデータを貯めておく箱のようなものですが、要するにエクセルの表データを超いっぱい入れておけるもの。くらいに思ってもらっても構わないです。Wikiっぽくいうと・・・
特定のテーマに沿ったデータを集めて管理し、容易に検索・抽出などの再利用をできるようにしたもの
って感じですね。いやWikiのままなんだけどね。
( ゚д゚)?
ここまではこんな感じでいいです。データベースはたくさん表(テーブル)が集まって出来ています。各テーブルには主キーと呼ばれるidがついています。(数字だったり文字だったりします)このid同士がいろんなテーブルと連携していて、必要な時に必要な情報を抽出できるようになっているのです。
データベースってなんでいんの?
例えばね。ネットショップでは顧客情報とか注文情報とかを全部エクセルで管理していたします。誰が?いつ、どんなものを買ったのか?という情報はとても重要ですからね。それをエクセルで管理すると1つのシートに誰がいつ買ったのか?って言う情報の表が1枚あればまぁ何とかなりますかね。
後はオートフィルタとかで顧客ごとに購入履歴を見たりできるし。
しかし、エクセルにも限界があります。結局最大でも1048576行までです。後は他のシートに移らないといけないし、何より毎回この膨大なデータをもつエクセルファイルを開くのですか?とか超大変です。
それなら、データだけ別に整理して保存しておいて、必要な時にだけ必要な分だけ取り出してみるという方が良い。ということになるわけです。ここでデータベースので出番です。
データベースを使うと、エクセルではなくてAccessなどのmdbファイルにデータのみを保存しておくことができるのでエクセル自体はとっても軽くなります。しかも、データファイル自体を直接開くことはしないでマクロを使ってデータベースファイルにアクセスするのでとても楽なんですね。
ですのでデータベースはどうしたって必要。ということになるわけです。
データベースを作る
じゃあちょっとデータベースを作ってみましょう。今回はAccessつまりMicrosoft Office Profesional以上に入っているソフトを利用します。ない人はごめんなさい買いましょう。まぁちょっと高度ですがMysqlというソフトは無料なのでそれを使ってもできますが、エクセルと連携するのは今回とはちょっと違う手法になりますし、何より同じMicrosoft同士で連携すると簡単ですので、これを使っていきましょう。
では早速、Accessを起動すると下のような画面になるので、[空のデータベース]を選らび、[作成]ボタンを押します。
すると下のようなテーブルの作成画面が表示されます。ここで必要なデータを表にしてどんどん作っていくのです。改めてですが、
- 表のことをテーブル
- 列のことをカラム
- 1行のデータをレコード
と呼びます。まぁ、言い方のお話なのでさくっと覚えれ。
さて、次回から実際にテーブル(表)を作ってみます。以下の注文表をエクセルで管理していたとして、これをいくつかの表に分けていきます。どうやるかは、次回やってみましょう。みなさんも考えてみるといいと思います。
ただ、Accessと連携するコードがすぐに載る?と思ったら大間違い。このブログではそんなことは致しません。なぜなら、コード載せても理解して、使い方がわからなければ意味がないからです。
というわけでまずはデータベースについてちょっとだけ理解していきましょう!
今日はここまで!
かしこ