プロが教えるわが家の防犯対策術!

こんにちは。私立高校に勤める者です。

エクセルとワードはある程度までVBAが使えるレベルです。特にアクセスを使わないと困るという状況ではないので、いままでほとんど使ったことがあります。現在、アクセスを勉強しようかどうかを悩んでいるのですが、アクセスがエクセルと比べて優れているのはどのような仕事をするときでしょうか?たいていの仕事では、アクセスを利用する必要はないのでしょうか (あまりアクセスを使っている人を見たことがないです)?それとも、アクセスの方が難しいため、エクセルを使っているのでしょうか?

今はアクセスを勉強しようか、もっとエクセルのVBAを勉強しようかと悩んでいます。現在、学校の中で行っている成績処理などの仕事は、エクセルで行っており、それほど不便は感じていません。私自身のスキルはエクセルとワードはVBAを使って、私の仕事に必要なことは処理できるぐらいのレベルです。

A 回答 (13件中1~10件)

No10です。


>アクセスだともっと大変そうですね。
いやいや、システムを作成するツールが沢山集まっていますので、難しいVBAまで使用しなくても
一般の機能は、ウィザードに従っていけば作成できます。
それより、テーブルやリレーションの関係などの失敗や経験の方が重要です。
現在でも、エクセルのファイルが分散しているのではないでしょうか?
名前など生徒の情報とテストの結果をうまく関係付して不要なVBA作業がなくなるようなシートの構成などを考えてみてください。
エクセルでも格段に使いやすいシステムになります。
このことを理解せずにACCESS使うと結果、今と同じことになります。
学生番号、名前などのデータとテストの結果、科目名などデータ(ACCESSではテーブル、エクセルではシートです)の構成、関連付けを
学校全体で十分に検討してください。
データの一元化、正規化、関連付けが腕の見せ所です。
VBAにはまるとすごいことが出来たように思いますが、最初の構成が良くなかったのでVBAが必要になってしまった。
ということは経験ありませんか。
一度、サンプルとして現在のエクセルのファイルを一まとめにしてみたり
他の先生方の意見を聞いたりして、考えがまとまったところでACCESSで作成してみると良いと思います。
学校全体で末永く使用できるシステムを一般機能で作ってあげると、引継ぎも簡単です。
もし、パソコンにすでにACCESSがインストールされているのであれば
http://www5d.biglobe.ne.jp/~ac2000/index.html

http://www.mahoutsukaino.com/ac/ac2000/index2000 …
の様ななサイトでサンプルダウンロードしてデータベースの構成を参考にされると良いと思います。
    • good
    • 0
この回答へのお礼

再度の回答ありがとうございます。

エクセルでも最初の構成がいい加減だと後々苦労することは経験済みですので、よくわかります。しっかりと最初に構成を考えることが、アクセスでは一段と重要なのですね。

しっかりと勉強して行きたいと思います。

たくさんの方から回答いただきありがとうございました。
本来なら全員にポイントをあげるべきだとは思いますが、
私の私見で決めてしまったことをお許し下さい。

みなさん、忙しい中、時間を割いて、丁寧な回答、ほんとうにありがとうございました。

お礼日時:2009/01/21 23:24

AccessもExcelも似たようなことができます。


(しかし、それぞれが得意とする分野が違いますが)

例えば、「リレーショナルデータベースの構築」、という意味では
規模や機能さえ問わなければ AccessでもExcelでもできます。

例えばExcelでは
MicrosoftQueryという機能(厳密にはExcelの機能ではありませんが)が
オマケでついています。
これを使うとExcelシートをテーブルに見立てた簡易的なリレーショナル
データベースが作成可能です。
(ちょっと使いづらいですが「MicrosoftQuery」はかなり便利です。)

「MicrosoftQuery」は「データ」「外部データの取り込み」
「新しいデータベースクエリ」によって呼び出せます。
システムテーブルを扱える設定にすれば、
各Excelシートをテーブルとして扱え、複数の表の間でリレーションを
組むことができます。
「MicrosoftQuery」はAccessの「クエリ」という機能と非常に
よく似た機能で、「MicrosoftQuery」を学べば、
Accessを買わずとも、ExcelだけでAccessの疑似体験ができます。


実際、私は 簡易的なバーコードPOSレジのサンプルを
ExcelのMicrosoftQueryとピボットテーブルでつくって活用しています。
POSレジのサンプル自体は半日程度で作成でき、他にも応用が利きます。
ピボットテーブルでRFM分析もできるので
お客さまを購入金額と来店回数で9つのランクに分けて
DMの内容を変えてお客様にお知らせをするようなこともできます。

しかし、Accessのほうがこれらのアプリケーションを作るのは楽です。
VBAも少なくて済みます。Excelの5倍は速く作れます。
このVBAが少なくて済む、というのがポイントです。

もし、AccessがExcelよりも優れているとすれば、
このように「データベースシステムをExcelよりも短時間に、
VBAを少なく、効率良く作れる」、ということだと思います。

Excelよりも学ばねばならない点が多いので最初は苦労しますが
あとがExcelよりもはるかに楽になります。

>今はアクセスを勉強しようか、もっとエクセルのVBAを勉強しようかと悩んでいます。

もし、「最初は苦しくてもあとで楽したい」とお考えなら
私が勧めるのはアクセスを勉強することです。
が、「勉強時間が確保できないと」あやまった理解のまま進むことになったり
することが多いので、なんともいえません。
軽軽しくはいえません。
本当はきちんとした人に習うのが一番いいです。
(できれば実務を多くこなしている人に)

ただ、いずれにしましても、
「ExcelからAccessに転向した方がいい」という意味ではありません。

AccessもExcelも両方優秀で、それぞれの得意分野があります。
一番いいのはAccessの得意な部分と、Excelの得意な部分をよく学び
適材適所で機能をコーディネイトすることです。
これが一番効率が上がります。

例えば、AccessとExcelはCOMオートメーションで連携ができます。
例えば AccessVBAからExcelファイルを開いて、
Excelの任意のシートのイベントプロシージャ(Sub)を
Accessプロシージャ側から直接名指しで実行することなどもできます。
つまり、AccessからExcelファイルのシートやピボット、
コマンドボタンを直接操作することができます。
当然、ExcelからもAccessファイルを開いて、Accessのデータを
Excelに転記したりすることも可能です。

つまりAccessとExcelは兄弟のようなものなので、
「どちらが優れているか」ということは考えず、
Accessの得意、Excelの得意を勉強しなおして、
やはり、適材適所でそれぞれの機能をコーディネイトする、という形で
使ったほうがいいと思います。

私の場合は・・・
・大量データの蓄積
 (1000件越えたら人間にはなかなか大変になるので大量と判断してます。
  また、Accessに慣れてしまってますので、Accessで作る方がExcelの
  20倍以上は速いので…。)
・入力フォームの作成や入力値の精度のチェック
・複雑な条件での高速データ抽出=ピボットテーブルのソース作成など
・複数クライアント(20台くらい)からのデータ共有と同時入力・同時修正。
 (クライアント数は実は3台以下の方が無難です。10台以上で
  やる場合はかなりの工夫が必要です。)
・取引先指定のレイアウトの帳票出力など

等々をAccessで行い、

Excel側ではAccessに接続して、ピボットによる各種集計・分析等々を行なっています。

集計はAccessのクエリやレポートで集計するよりピボットで集計したほうが
楽で速い場合も少なくありません。
Access側でもピボットは使えますが、Accessファイルの容量の問題や
バージョンの問題もありますし、Excel上でVBAでピボットを操作するほうが
何かとやりやすいのでExcel側でやっています。
(もちろん、AccessからもそのExcelコードを直接実行できますし)

これだけでもかなり効率化ができています。

システムはいかに効率化するかですから、
AccessでもExcelでも効率化できてかつ、メンテ、引き継ぎしやすい
機能があれば、それを使うほうがよいと思います。

その意味ではAccessの機能を勉強することは非常に有意義であるとは思います。

しかし、本業を圧迫するほどになってしまうといけませんが・・・(^^)

いずれにしてもがんばってくださいね。
    • good
    • 1
この回答へのお礼

ていねいな回答ありがとうございます。

>もし、AccessがExcelよりも優れているとすれば、
>このように「データベースシステムをExcelよりも短時間に、
>VBAを少なく、効率良く作れる」、ということだと思います。
私はエクセルのVBAで、自分の仕事の範囲なら何とかなるというレベルですが、ここまでできるようになるのに数年かかりました。アクセスだとVBAを少なく効率よく作れるというのにはとても心が引かれます。

やはりアクセスを勉強しようと思います。ありがとうございました。

お礼日時:2009/01/21 23:20

No.5です。


他の方へのコメントと合わせ考えるに、思い切ってデータベース化した方が良い様の気がしてきました。
Excelの場合と違い、データベース化するには、「正規化」と云う概念が必要です。
これは同一の情報はダブらせないと云う事です。
例えば、「生徒IDテーブル」に「生徒番号」、「氏名」、「読み仮名」、「入学(転入)月日」と入れたならば、他のテーブルには、「生徒番号」だけにして、「氏名」が必要のときはいつも「生徒IDテーブル」を参照するようにします。二箇所以上のテーブルに「氏名」を持つと整合性が失われます。
後これは、Excelの場合でもなさっていると思いますが、生徒のID等は一意で年度を越えても同じにして置くとよいでしょう。手書きあたりだと出席番号などを使いますが、すると例えば2年生の時の成績だけを見るのならば良いのですが、1年の時はと云う場合に一々変換せないといけません。データベースの意味が薄れます。必要ならば学年ごとの出席番号等は別に持てばよいのです。
その意味では、アクセスそのものテクニックもさる事ながら、関係型データベースの設計を多少習われた方が良いでしょう。先に御紹介した講座でもアクセス2002の講座の中で栗鼠が団栗等を販売する御店の商品管理をすると云う例で初歩の簡単の解説をしています。(マイケルのところです)
前回、書き落とした事を、アクセスはオフィスファミリーの一つです。エクセルとの親和性は高いです。エクセルで作ったデータをアクセスに流し込むとか逆にアクセスで作ったテーブルをエクセルシートにする等は簡単にできます。(但し、エクセルのデータ件数の上限以上はその儘では無理ですが)他のソフトも良いのかも知れませんが、折角ですからご利用になられたらと思います。ただ、ファイルメーカの方が習得はアクセスに比べて容易と聞きます。が反面拡張性や自由度はアクセスの方が高いと聞きます。(ファイルメーカに就いては飽く迄も伝聞ですので)
くだんの講習ですが、アクセス2003は予定のみで結局実現せなかったのですがアクセス2002でほぼ代用が出来ます。細かい事を云えば限がないのですが入門初級では大差がないからです。逆にその差がお解りになるようであれば可也上級になられたと云う事です。
    • good
    • 0
この回答へのお礼

再度の回答ありがとうございます。

ご指摘のように、エクセルだと基本的なデータ(氏名や住所など)の変更のたびに、エクセルのすべてのワークブックのすべてのシートで置換を行う処理をマクロでしているのですが、これがなかなか大変です。

問題は他の方の指摘にあったように、私がアクセスでこの問題を解決できても、次の人に引き継げるかどうかです。まあ、やってみないことには私自身ができるかどうかも?なので、アクセスを勉強しようと思います。

お礼日時:2009/01/21 23:15

もうひとつ付け加えるならば


Accessは、データベースのシステム開発ツールです。
例えば、サーバー(或いはネットワーク上の共有フォルダ)にテーブルを作成しておいて、
先生方の複数のパソコンから入力するシステムが作れます。
一人の担当の方が受け持ちの生徒のデータを入力するのであれば、エクセルで十分でしょうね。
もし、生徒全員の何年分のデータを保存しておこうとすると、一人では作業も出来ないですし、
それなりのシステムを開発する事になります。その場合に画面を作ったり
集計のボタンを作ったりする事が出来ます。
エクセルでは、スタンドアロンがベースなのでファイルが大きくなると
保存や開く時に時間がかかるようになりますが、
データベースソフトでは、どれだけデータが増えても大丈夫です。
(もともとテーブルの上書き保存はありません、入力した時点でHDに書き込みます)
それなりのシステムを作る事になりますので、ひとりの先生で作成した場合
その先生が転勤後にシステムに手を加えたくなった時が大変です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>データベースソフトでは、どれだけデータが増えても大丈夫です。
なるほど、そうなんですか。知りませんでした。

>それなりのシステムを作る事になりますので、ひとりの先生で作成した場合その先生が転勤後にシステムに手を加えたくなった時が大変です。
そうですね。今のエクセルのVBAで私が作った成績処理でも、私がいなくなるとどうなるんだろうと心配はしているみたいなので(~_~;)、アクセスだともっと大変そうですね。

お礼日時:2009/01/19 19:32

こんにちは。



ご参考になるかどうかわかりませんが、
私の経験よりご回答します。

アクセスを学習する、というときは、”必要にせまられて”という
状況になったときに初めて学習することがベストかと思います。

現在VBAをご存じということですが、
生徒の点数データとして表で残しておいたり、
それを元に分析したり、一覧を容易に出力するようにしたり。。。と
いろいろ欲が出てきたときに、VBAではどうしても対応できない場面がでてきます。
そのときに初めて、”解決するために必要なソフトは?”となり
調査した結果が”アクセス”だったのであれば
そのときから学習しはじめるということの方が、
目的もしっかりしていますし覚えも早いかと思います。

というのもアクセスがそれほど利用頻度の高いソフトでも
ないからです。

以上、ご参考まで。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>アクセスを学習する、というときは、”必要にせまられて”という
状況になったときに初めて学習することがベストかと思います。
やはりそうですかね。現在は緊急の必要性はないのですが、いざというときのために少し勉強してみようと思いました。

少しだけアクセスの利便性がわかってきたので、ちょっとは勉強しようと思っています。

お礼日時:2009/01/19 19:30

Excelは、一つの業務を処理するのに向いています(表計算)。


Accessは、多岐に渡る分野のデータ管理に向いています(リレーショナル・データベース)。

データが多岐に渡ると言っても、「PC等の機器のID/PASS」と「生徒の個人情報」との間には関連性(リレーション)がありません。
こういうものは2つのExcelファイルで管理は事足りますが、「PC等の機器のID/PASS」と「PCの設置場所」「PCの購入金額」「PCのメンテ履歴」「PCの購入元(及びその情報)」...となると、"PC"という関連性(リレーション)がありながら、一つのExcelファイルでは管理が難しくなります。
特にメンテ履歴などは何行になるか分からないデータは、Excelの行幅をめちゃくちゃにして見にくくしてしまうし、ファイルを複数に分けると更新が大変です。
そういうデータを扱うのがAccess(リレーショナル・データベース)なワケです。
ただし、データをきちんと正規化し、適切な構造を持ったリレーションを設計しないと、役に立ちません。
Excelのように、何でもデータを並べてしまえばとりあえず使えるというものではないので、敷居は高いでしょう。

成績処理に限れば、Accessは必要ありません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>成績処理に限れば、Accessは必要ありません。
心強いアドバイス(笑)ありがとうございます。

他の方の回答のお礼で書いたのですが、最近は離婚などで在学中に名前の変わる生徒が増えました。そのたびに名前をすべて書き換える必要があるのですが、アクセスだと簡単にできるかなと思ったのです。

ただどうしても、アクセスの方が敷居が高そうですし、実際、使う段階でもきちんとデータベースの構築を考えていないといけないということが、少しだけですがわかってきました。

お礼日時:2009/01/19 19:28

Accessのレポート機能が断然です。

    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>Accessのレポート機能が断然です。
アクセスに関しては初心者ですので、まだその便利さが実感できていません。もうちょっと、アクセスのレポート機能を勉強してみます。

お礼日時:2009/01/19 19:24

少し質問の趣旨と外れますが。



エクセルは表計算ソフトと呼ばれており、アクセスはデータベースソフトになります。
思うに、CaveatEmptor 様には失礼ですが、データベースと言う概念をお持ちでないように思います。
まずはデータベースの概念を学んで見てください。以下の書籍が参考になると思います。

http://www.amazon.co.jp/gp/product/4798104884/sr …

データベースの概念をご理解した上で、今エクセルで行っている事を、アクセスで構築してみてください。データベースが完成したら、動作スピードが格段に早くなり、クエリを作る事で簡単にデータを処理できると思います。

その上で、お勧めのデータベースソフトとして、ファイルメーカーをお勧めします。

http://www.filemaker.co.jp/

生徒の成績を整理管理するなら、アクセスよりハードルが低く、クエリ等も無く、特定のデータを抽出、レポートにすることが出来ます。

ファイルメーカーは、厳密にはアクセスと比較した場合、違うと言う意見もありますが、データベースソフトして入門には良いと思います。

ただ、扱うデータが1000件程度で有れば、エクセルを十分使いこなしていると思いますので、十分だと思います。ただ。次にステップとしてデータベースソフトを学ばれる事をお勧めします。

ご参考になれば。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

参考URLありがとうございます。

ファイルメーカーは名前だけは知っています。ただ、まだアクセスでさえも必要性があるかどうかわからない状態なので、その他のソフトを使うかどうかは?です。

アクセスだと使っている人が多そうなので、わからないときも、このような場で質問すると答えてくれやすそうという理由とエクセルと連携させやすそうということで、アクセスを使おうと思っている程度です。

お礼日時:2009/01/19 19:22

これは、アクセスと云うソフトについてお答する方が良いようです。


エクセルは可也御存知と御見受け致しました。
アクセスは所謂関係型データベースをパーソナルで実現したものです。
但し、ワードやエクセルなどと違いデータベースを自分自身で構築してやる必要があります。これがアクセスのハードルを高くしている理由の一つです。
関係型(リレーショナル)ですから、複数の表のデータの同期をとる必要がある等と云う場合にははぢめにそのようの設定にしてやれば訂正漏れなどと云う事もなくキチンと同期がとれます。エクセルでも出来ない事はないのですが相互参照をすると途端に重くなり、参照箇所が多くなると使い物にならなくなる程遅くなる場合があります。
又エクセルで処理できない程の件数でも処理できますが、これはパソコンでそんなに大きいデータを処理する必然性を検討した方が良いかもしれません。
私見ですが、アクセスの知識の基本位は知っておかれれば選択肢が増えると云う意味でも又データ構造を考えると云う意味でも良いと思いますが必然性もないのに敢えてアクセスを利用する必要はないと思います。
その必然性を判断するためには矢張り一応の知識は必要でしょう。
アクセスのWeb上の講習会として有名のところを紹介しておきます。個人でやっているのでアクセス97とアクセス2000とアクセス2002との講座はあるのですが、アクセス2003のものは予定はあったのですが結局実現していません。最近アクセス2007のものがはじまりました。内容は市販の速習本とは一線を隔した良いものだと記者は考えています。

参考URL:http://www.mahoutsukaino.com/
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>複数の表のデータの同期をとる必要がある
まさにこのことで悩んでいたのです。
最近は離婚とかで、在学中に名字の変わる生徒がいます。
そのたびにすべてのエクセルのワークブックのすべてのシートにある名前を書き換えないといけませんので。
現在はあるフォルダに必要なワークブックはすべておいて、VBAを使って書き換えています。

参考URLありがとうございます。

お礼日時:2009/01/19 19:19

物凄く乱暴な書き方になりますが



・エクセルは使い方を細かく決めなくても
 容易にデータ集計などができる
 しかしワークシートのサイズに収まる範囲まで

・アクセスは予めデータの扱い方(テーブル等)を決めなければ
 集計もろくにできない
 しかし一度決めたなら膨大なデータでも容易に扱うことができる

大量なデータ(数十万行以上)を扱っての処理の必要がなかったとか
では無いでしょうか?
(まあ、本当に大量ならアクセスは使いませんけどね)

アクセスがあれば便利だけどという場面は
普通に仕事をするとよくあるのですが
エクセルで済んでしまう場面も多いので
最初にちょっと用意が面倒なアクセスを敬遠するケースがあります。

いろいろなデータを関連付けて処理し、かつ最小限の情報蓄積をめざす
リレーショナルデータベースの最も安価で扱いやすいのがアクセスです
重複データをやまもりに処理しても問題が無い場合には
エクセルでも同じことができますので・・・
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>大量なデータ(数十万行以上)を扱っての処理の必要がなかったとかでは無いでしょうか?
はい、その通りです。学校だと最大でも1000人程度ですので。

エクセルがある程度使えるので、ちょっとしたことでもエクセルでやってしまいそうです。

お礼日時:2009/01/19 19:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!