アクセスや難しいマクロを組まずにエクセルでデーターベースをつくる。

データベースを作成して、データの管理をしたい。
そのデータを基に報告書や請求書を作成したい思ったことはないだろうか。

通常、データベースを作成して管理するソフトといえば、MicrosoftAccessを使用することが頭に浮かぶが、
MicrosoftAccessを利用すると業務連携に支障が生じる場合がある。
それは、MicrosoftAccessを編集することができる人が限られている点が一番の問題で、
作成後に再編集をしたい。といった際に、最初に作成した人がその場にいなければデータの内容を更新することはなかなか出来ない。
実際にこうした事例を経験したことがある人も多いのではないかと思う。

今回は、MicrosoftAccessを利用せずに、エクセルを使用したデータベースの作成のしかたについて考えていく。
しかも可能な限り難しいマクロを組むことなく作成する。

まず、従来によく見られがちなエクセルの使用方法についてふれたい。
請求書や報告書などのテンプレが入ったシートをシートコピーして、その中に、内容を入れていくという方法。
この方法は、テンプレの中に必要事項を入力していくので、入力しやすいメリットがある。
しかしながら、そこに入力したデータはそのシートのみで完結しており、別のシートに入力したものとの連動を行うのは難しい。

個々の注文書をシートごとに管理する方法。この方法では印刷書類は作成できるが、個々のシートが連携していないので注文を一括して管理することができない。案件を検索したりする際も苦労する。

例えば、そのシート内での合計や分析は容易にできるが、
このテンプレシートをそれぞれコピーして入力したデータである、シート1、シート2、シート3の合計や平均を出したり、同一項目での、シート1、シート2、シート3の比較は出来ない。
これは、あくまで、独自で作成したテンプレシートの中に数字を記入しているだけである。
つまり、すべてを集約した表によって各数値が整理され管理されていないからだ。

エクセルとして、数管理、分析を行っていくためには表の形に数値をまとめていく必要がある。
つまり、それがデータベースである。
シートの一つをデータベースの蓄積をするものに設定して、データを集約することが必要になる。

考え方

データを整理するデータベースのシートを作成する。シートのタイトルは短く簡潔なものにする。
1番上に入力データという行を作成。
2番目に編集データという行を作成。
3番目に編集データ登録という行を作成。呼び起こしデータという行を作成。
この下に、テーブルでデータベースを作成する。

このデータベースのシートにデータを蓄積するために、入力フォームのシートを作成する。
マクロを使用して入力フォームを作成することも可能だが、その方法をとってしまうと、
再編集する際に専門知識と膨大な時間がかかるのでおすすめしない。
ここではあくまで、エクセルのレベルがVLOOK UP程度ができる人向けのものを想定している。

入力フォームは先程、ふれた印刷を目的としたテンプレデータを使用したほうがいいかもしれない。
例えば、紙で印刷した申込書を入力する際には、
全く同様のフォームのものに数値を入れるほうが楽だし、間違いが起こりにくいという考えがあるからだ。

入力フォームが出来たら、データベースとリンクさせる。
データベースの入力データの行のところのセルに(=入力フォーム!A5)といったように
入力フォームの項目を「=」でつなげていく。(下記の画像を参照)
すべてリンクさせたら、確認をする。
確認方法は入力フォームにデータを入力して、その情報がデータベースの入力データのところに反映されているかを確認する。
適切に表示されているならば、入力データの行は編集完了。

これをテーブルの表に行ごとコピーして貼れば、データベースにデータを登録することになる。
もちろん、この入力データ行のものをテーブルへ登録する作業は、マクロの記録を利用するればボタン一つでできるようになる。
その際のコツとしては、ただ、コピーして貼り付ける方法だと、テーブルのサイズの設定次第ではうまくできない場合もある。

登録する手順は以下の通り

①テーブルの項目の下の行(一番上の入力のところ)へ行を挿入する。
②入力データ行のデータをコピーする。
③先程、挿入したテーブルの行に「値」で貼り付ける。

ポイントは、まず、テーブルに新しく入力する行を加えてあげること。そして、貼り付けるデータは「値」で貼り付けること。
この2点を守れば大丈夫。

マクロの記録ができるのならば、この作業ををボタンのマクロへ登録すれば「登録ボタン」が完成する。

以上で、必要最低限のデータベース作成の入力フォームとデータベースが出来たが、これでは、入力を間違えて登録した場合、
修正できないので、また、入力フォームへ記入して登録し直さないといけない。

この方法を解決するために編集フォームを作成する。
編集フォームはすでにデータベースに蓄積されているデータを編集データの行に呼び起こし、
それを基に編集データ入力フォームのシートへ反映させる。
そして、編集データフォームで入力したデータは編集データ登録の行に反映されているのでそのデータ行をコピーして貼り付けるという方法をとる

まず、先程作成した入力フォームのシートをコピーする。
そして、これを編集入力フォームにシート名を変更する。
編集入力フォームの入力セルに、データベースシートの編集データ業の情報を入力していく。
(=データベース’A5)といった感じのもの。
編集入力フォームが完成したら、そのシートをコピーする。タイトルは「編集用(さわらない)」といったものにする。

ここで、編集フォームの構造について整理したい。

①データベースからデータ抽出する。
②抽出したデータを編集入力フォームへ同期
③(編集する)
④編集データ登録行のデータをコピーして任意のデータベースの場所へ貼り付けをする。

こういった流れになる。
データを抽出し、それを編集する必要がある。
気をつけることは、編集入力フォームに入力されているものは「=」で繋がれた式であり数や文字情報ではない。
そして、それを編集するということはその式が崩れてしまうことを意味している。

そのため、データを抽出し、フォームへ表示させるシートAと、その情報を貼り付けるシートBが必要になる。
そして、編集データ登録に反映されるデータはシートBのものになる。
これにより演算式が編集作業によって崩れることを防ぐ。
このシートをコピーして、そのシートの情報を値で貼り付けるという作業もマクロの記録で登録し、編集ボタンを作成すれば、
作業効率は飛躍的にあがる。

シートAは「編集用(さわらない)」のシートであり、そのデータを、編集フォームのシートであるシートBに「値」で貼り付ける。
編集フォームで編集をして、データベースへ登録という形になる。
編集データ登録の行のデータはVLOOK UPで情報を抽出できるようにしておく。

データベースのシートの式とレイアウトはこのような感じになる。青い表のところに登録したデータを値でコピー&ペーストして蓄積していくことになる。入力フォームやデータベースを変更した際は、「編集フォーム(触らない)」も情報を修正すること、「編集フォーム」のリンクの確認をする。

以上で、データベースへの書き込みと編集ができるようになった。
このデータベースを活用して、書き出す書類のテンプレを作成し、それをVLOOK UPで同期すれば、様々な種類の書類を作成することも可能。

また、同期している書類の中で修正が必要な場合はデータベースを編集すればよい。これにより複数の書き出す書類の値も修正されるのでとても簡単で便利になる。

今回のデータベースづくりのコツは

①テーブルを活用して、データベースを作成し、そこにすべての情報を蓄積し、管理できるようにする。
②シートごとの役割を明確にし、データベースと同期させていく。
③マクロの記録を効果的に使用して、作業効率をアップさせる。

GORILAX
コラムニスト ふと湧きだす好奇心から、いろんなセカイを巡るのが好き。実際に現地に足を運んで、海外のイベントや食、文化についてのコラムを執筆したり、国内の「面白いもの」について紹介していきます。社会学、文化人類学の視点からもアプローチしていきます。