エクセル工房へ

画像表示の二つの方法について
Accessソフトの画像表示には二通りの方法があります。

<DAO方式>
MDBファイルの中に画像データを取り込む方式です。「写真挿入」ボタンにより簡単に画像を取り込むことが出来ます。その反面、データファイル容量が肥大化しますので、データ件数が増えてくるとAccessの処理能力が落ちてくる可能性があります。具体的には、データの呼び出しや更新に時間がかかる・・・などです。

<ADO方式>
上記「DAO方式」のようにMDBファイルの中に直接画像データを取り込むのではなく、ファイルの外の一定の場所に画像データを持ちます。決まったフォルダの中にまとめて画像ファイルを保存しておき、Accessはその都度そこから画像データを呼び出します。この方法ですと、画像データ件数がいくら増えようがMDBファイル自体のデータファイル容量は増えませんので、画像ファイルのせいでAccessのパフォーマンスが悪くなる、といった事態は避けることが出来ます。また画像ファイルの形式やサイズも気にする必要は全くありません。ただしこの方法の場合、画像の入ったフォルダの「絶対パス」を参照することになるので、一度場所を決めたらフォルダをその場所から動かすことが出来ません。もしどうしても動かしたい場合は、Accessデータに入力済の「絶対パス名」を書き換える必要があります。もっともテーブルのフィールド置換機能を用いたり、エクセルファイルにテーブルデータを「エクスポート」して、文字列をまとめて置換し、その後再びインポートすなどの方法を使えば、それほど手間がかかる作業というわけでもありません。
絶対パスについて
さてここで「絶対パス」について説明したいと思います。
今ここに「画像1.jpg」というファイルが、例えばパソコンのDドライブの中の「作業」という名のフォルダの、そのまた中にある「作業中」というフォルダの中にあるとします。この場合の「絶対パス」は次のようになります。

   D:\作業\作業中\画像1.jpg

もしも更に「作業中」の中の「画像ファイル」という名のフォルダの中に入っていたとしたらその場合は、

   D:\作業\作業中\画像ファイル\画像1.jpg

ということになります。要するにドライブ名「D:」に始まって、各フォルダを外側から順番に「\」で繋いでいけば良いのです。そして最後の画像ファイル名の前にも「\」を付け、その後に画像ファイル名(拡張子付き)を書きます。実際に「D:」からフォルダを辿って行くのは大変に思うかも知れませんが、簡単に調べる方法があります。
目的の画像ファイルの上で右クリックしてください。そして「プロパティ(R)」をクリックします。「全般」タブの「場所」項目の右に、この「絶対パス」がちゃんと書かれています。実際に「絶対パス」を書くときは、この部分をドラッグして、コピーアンドペーストするとよいでしょう。ただしここに書かれているのは最終の「フォルダ」名までですので、このあとにさらに「\」をつけて「画像ファイル」名を書くことになります。「ADO方式」の版では、画像をボタンで取り込む代わりにこの「絶対パス」を入力フォームに登録していくことになります。
エクセル工房Inageのアプリケーションでは、画像ファイル(「Photos」フォルダ)は、デフォルトでC:ドライブの直下に置くようになっております(既に述べたとおり移動も可能です)。前記「画像1.jpg」というファイルが、この場合ですとパソコンのCドライブの中の「Photos」という名のフォルダの、そのまた中にある「Persons」というフォルダの中にあることになりますので絶対パスは、

C:\Photos\Persons\画像1.jpg

です。このパスを読み込むためには、各ソフトに同梱されている「Photos」フォルダをコピーしてC:ドライブ直下に貼り付けるだけで準備完了です。このフォルダの中に画像を作り貯めていくことになります。
C:ドライブ直下に「Photos」フォルダがあるところ
ダミーデータにおける「Persons」フォルダの中身
現在「ADO方式」を採用しているソフトは次のとおりです。
「Inage式顧客管理システム」
「Access人事システム」
「街の不動産屋さん」
「販売業顧客管理システム」
「Access汎用売上帳」
「CD&DVD管理データベース」
「旅館宿泊業顧客管理システム」
「図書管理データベース」
画像ファイルのファイル名のつけ方のコツ
画像ファイルにはどのような「名称」を付けたら良いでしょうか?結論を言ってしまうと「コード」ということになります。例えば「相原保」氏の顔写真に「Aihara.jpg」などという名称を付けると、あとで収拾がつかなくなってしまいます。フォルダの中で並びがめちゃくちゃになるだけでなく、同姓同名者がいた場合にも対処が必要になります。もし「相原保」氏の社員コードが
10011だとしたら、顔写真のファイルはぜひとも「10011.jpg」などのようにしてください。同じく「相原保」氏の履歴書の画像は「10011rireki.jpg」などのようにします。商品の写真の場合も「商品名」などではなく「商品コード」にします。賃貸物件の写真も同様に「物件名称」ではなく「物件コード」にします。ファイルの「名前の付け方」の統一(規則化)は、データベース管理における重要なカギといえます。

DAO方式の場合の画像の貼付け方法について
〜どのような画像形式を用いるか?〜
AccessアプリケーションのOLEコントロールにJPG画像を貼り付けるためには「Microsoft Photo Editor」をインストールする必要があります。ところが何故かOffice2003以降「Microsoft Photo Editor」がCDに同梱されないようになってしまいました。これは全く理解に苦しむことです。そこで、とりあえず何とか「Microsoft Photo Editor」をインストールする方法と「Microsoft Photo Editor」なしで画像を貼り付ける方法をご紹介します。
(1)Office XP のCD-ROMをお持ちの場合
OfficeXPの「Office ツール」タブの中の「Microsoft Photo Editor」のみををインストールします。方法は次のとおりです。

@Microsoft Office XP セットアップウィンドウの「インストールするアプリケーションを指定して下さい」の画面で「Microsoft Word」から「Microsoft IME」までの全てのアプリケーションからチェックを外します。さらに「アプリケーションごとにオプションを指定してインストールします(C)」にチェックを付けて「次へ(N)>」をクリックします。
AOffice共有機能の「▼」を推して表示されたタブの中から「×インストールしない」をクリックします。
B「Office ツール」の左の「+」をクリックして全ての小項目を表示させます。
CAで説明したのと同じ方法で「Microsoft Photo Editor」以外の項目を「×インストールしない」に変えます。
D「Microsoft Photo Editor」は「マイコンピュータから実行」とします。
Eこれで「Microsoft Photo Editor」だけがコンピューターにインストールされますので「次へ(N)>」をクリックしてください。
F「完了(I)」をクリックします。
Gインストールが終わったら「OK」で閉じて下さい。
これでAccessにJPG画像が貼り付けられるようになります。
2)Office XP のCD-ROMをお持ちでない場合
BMP形式に変換してからの貼り付けということになります。ただしBMPはJPGにくらべて容量が大きい形式ですので、必ず以下の方法で容量を減らしてから貼り付けて下さい。

以下の5種類(A〜E)の画像形式による画像をご覧ください。A.JPG(80KB)とB.24ビットマップ(900KB)が一番良好な画像であることが分かると思います。ただし今やっている説明はJPEGが使えないことが前提ですので、ここではBMPを用いることになります。しかしB.24ビットマップ(900KB)の容量を見てください。なんと900キロバイトの容量です。実にJPGの10倍以上です。したがってこれは使うわけにはまいりません。残りのうちE(GIF111KB)も「Microsoft Photo Editor」のない環境では貼り付けることが出来ません。また「Microsoft Photo Editor」があったとしても、実際に貼り付けてみるとGIFの画像が大変に「粗い」画像であることが確認されると思います。そこで残るのはC.256ビットマップ(301KB)とD.16ビットマップ(150KB)となるわけですが、結論から言うとC.256ビットマップ(301KB)を使うことになります。
A.JPG(80KB)
B.24ビットマップ(900KB)
C.256ビットマップ(301KB)
D.16ビットマップ(150KB)
E.GIF(111KB)
C.256ビットマップ(301KB)は、解析度は最良とは言えませんが、サイズが301KBと小さめです。しかしこのサイズはもっと減らすことが出来ます。その方法をご紹介します。建物写真はデジカメか携帯電話で撮られることが多いと思います。ということはJPEGかBMPですね。これらの画像を256ビットマップにした上でさらに適切なサイズに減らす方法を以下に説明します。

@サイズを変更する画像のアイコン上で右クリックします。
A開いたタブの「プログラムから開く(H)」をクリックします。
B表示されたアプリケーションのうちから「ペイント」をクリックします。
Cメニューから「サイズ変更」を選びます。
D「ピクセル」にチェックを入れます。
E「水平方向」の数値を「320」に変更します(比率はそのままに垂直の数値も変わるはずです)。サイズはもっと小さく出来ますが小さすぎると画像が粗くなりますので「320」くらいが良いと思います。
F「OK」で閉じます。
Gメニューから「名前を付けて保存(A)」をクリックします。
H「ファイルの種類(T)」の「▼」をクリックしてタブを表示させます。
I「256色ビットマップ(*>bmp;*.dib)」を選びます。もし「Microsoft Photo Editor」のインストール環境であれば「JPG(*.jpg*.jpeg*.jpe*.jfif)」を選びます。
J「保存(S)」をクリックします。
Kこのようにして出来た画像をAccessに貼り付けてください。

※なおサイズを減らす作業は「Microsoft Photo Editor」のあるなしに関わらず行なって下さい。JPEGでもサイズを320×240にすれば容量を減らすことが可能です。重たい画像は、データ数が少ないうちは良いのですが、データが1000件を越えるようになると、確実にAccessのパフォーマンスに影響を及ぼしてきます。画像サイズの容量には普段から気を付け、貼りつける前の「減量」を心がけて下さい。
※以上(サイズ320×240)は「街の不動産屋さん」における物件写真について説明しております。従いまして、その他のアプリケーションの場合は、それぞれの写真の種類によって必要最小限のサイズに変換する様にしてください。
C.256ビットマップ - 640×480(301KB)
C.256ビットマップ - 320×240(76KB)
このように、301KBあった画像の容量を76KBまで減らすことができました。