• ベストアンサー

EXCEL VBAの可能性

 こんにちは。  先日、EXPOで、Excelをプラットフォームにしたツールのデモを拝見しましたが、Excel=不安定で担当者最適にすぎない という概念が覆されました。  改めてVBAの書籍などを読もうという気になりました。  関数はある程度一般的なことは覚えましたが、さらに上を目指すか、  Accessを勉強するか迷っていたところです。 (業務は、人事、総務の申請、資産管理関連です) EXCEL VBAの向き、不向き、よしあしについて、経験上のコメントなどありましたらお聞かせ願います。 用途:在庫管理、作業管理、人事管理、ID管理、PCヘルプデスク管理

  • Yepes
  • お礼率94% (1652/1746)

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 ご質問は、AccessとExcel VBAかということでしょうか? ここの掲示板をみていると、Excelの得意な人は、Excelで、Accessの得意な人はAccessでという構図が出来上がるのだろうと思います。私は、どちらでもよいと思いますが、Yepesさんご自身の様子からすると、Excel VBAに進まれたほうが良いようですね。 本来、きちんとした目的をもったいたら、Accessを勉強したほうがよいのですが、Access は、まとまったものを作らされる傾向が強いので、その分、まとまった時間が必要です。私は、やはり、Accessのほうが一段敷居は高いように思います。 Excelは、5分とか10分とかでも、つまみ食いの勉強が可能なので、忙しいときでも、なんとかなります。それと、Excelは、総体的に使用している人が多いので、掲示板で聞くにも、すぐに返事がつきます。それで、導入しやすいのではないかと思います。 通常の学習する段階ですと、ExcelのVBAのイベント・ドリブン型マクロやユーザーフォームは、Access と似ている部分も出てきます。 Excel VBAなどは、たった一行でも、一日に、1行、年間、300行程度、効率よく行えば、それは自分の中に残ります。回数を繰り返し学習するという点において、AccessとExcelとを比較すると、Excelのほうが効率が高いように思います。Excelの勉強は、あまり目的意識を持たなくてできます。ExcelのVBAは、小さな実験場なのですね。何か仕事の目的を持たせずVBAを動かすことによって、逆に、きちんとした言語としてのVBAが身につくと思っています。(注意:逆はよくありません。Excelでは、何かの仕事をさせるために、VBAを作ると、うまくできない、覚えられないという現象があります。理由は簡単なのです。本当はExcelとVBAは、別ものだからなのです。) 一通り覚えてから、Access を行っても無駄にはならないように思います。

Yepes
質問者

お礼

ご返答ありがとうございます。Excelは関数だけでなんとかやりくりしていますが、手作業が多く悩んでいたところにVBAは目からうろこでした。ただ、パフォーマンスチューニングやらいろいろテクニカルな学習事項多そうですね。プログラミングそのものの概念をつかむことも目標にいれたいと思います。

その他の回答 (3)

noname#79209
noname#79209
回答No.4

ExcelのVBAを覚えてしまうと、Excelでチョット複雑なことをさせたいときに、 安易にVBAに走ってしまうクセがついてしまいます。 個人的には、Excelでは極力VBAなしで作成するよう心がけています。 職場で軽く「ああ、それならVBAを使えばできるよ」と作り始めると、 それらのメンテナンスで振り回されてしまいます。 「この前作ってもらった表なんだけどさ、こんな風に変えて貰えないかなぁ」等々。 あと、PCのセキュリティーレベルによっては「この表にはマクロが入っている。ウイルスかもしれない。」という旨の警告メッセージが出ます。 この「ウイルス」という語句に過剰反応して、「ウイルスに感染している!!」と騒ぐエンドユーザーが必ずいます。

Yepes
質問者

お礼

ありがとうございます。簡単なマクロを埋め込んだときにユーザから苦情が来ました。マクロウィルスと間違えてしまった、、と。業務への適用は慎重に行いたいと思います。

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.3

こんにちは。 >用途:在庫管理、作業管理、人事管理、ID管理、PCヘルプデスク管理 上記の用途でしたら、EXCELだけでも大変し、ACCESSだけでも簡単ではないと思います。 表の作成、帳票などの印刷を考えると、EXCELの方が優れているし、やはりデータの管理などを 考えるとACCESSの方がいいと思います。 なので、データの管理は「ACCESS」で管理して、データベースとして使う。 全ての帳票類は「EXCEL」を使う。 後、全てのシステムのプログラムは、EXCELのVBAで作成(フォーム作成等含む)する。 VBAからデータ「ACCESSのMDB」の追加・更新・削除及び検索等が簡単に出来ますので「ADO利用」、 ACCESSの勉強は、MDBのテーブル作成方法を覚えるだけでいいと思います。 これから勉強するなら、まずEXCELのVBAを覚えた方が良いと思います。 ※ VBScriptを利用すれば、EXCELのVBAで作成したフォームプログラムをフォームのみ表示が出来ます。

Yepes
質問者

お礼

ご返答感謝です。AccessとExcelは、調和できるものという印象を受けました。なので掘り下げていく時点で両方にかかわっていかざるをえあにように思いました。ならば、とっかかりやすいExcel VBAの初歩から習おうと思います。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

スキルアップすればエクセルVBAで大抵の事は可能です。 ただし、ブック・シート・セルと言う縛りがあるので、大きなデータ管理(データベース)的な機能をプログラムで扱う場合は、処理に時間が掛って仕舞います。 大量のデータからの抽出とか、任意の集計を頻繁に行う場合等だとアクセスならほんの数行のコードで済みますが、エクセルのみだと結構面倒になって来ます。 エクセルではデータ項目が1つ増えるだけでも関連シートやVBAの修正が必要になって来ますが、アクセスなら比較的簡単に修正が可能です。 >用途:在庫管理、作業管理、人事管理、ID管理、PCヘルプデスク管理 アクセスが出来るなら簡単に手早く綺麗に作成出来るでしょうね。

Yepes
質問者

お礼

ご返答ありがとうございます。 一覧性のしやすさや計算力、印刷の微調整では、Excelが優れているようですが、 Accessでそれほど簡単にできるものが多いなら、学習の順番を変えてみようという気になります。順序はどちらでもよいのでしょうが。。

関連するQ&A

  • エクセル VBAの作成料の相場

    私は、会社でパソコンの管理を任されています。 独学でエクセルのVBAを覚え、会社内でいろいろなものを作りました。 が、いまいち評価があいまいです。 そこで質問です。例えば、私が社内で作ったものを例にあげると、仕入から 売上(納品書の発行、請求書の発行)そいて在庫管理までのVBAを作り ました。 これをどこかに依頼して作って頂いた場合、いくらぐらいかかるものなのでしょうか?

  • Excel VBA 在庫管理について

    Excelで在庫管理をしているのですが、とても効率が悪く、改善したいと思っています。 週に1度発注するのですが、 売上と仕入れから現在の在庫を算出し、在庫管理表(Excel)に反映させ、フィルターで各メーカーごとに発注するものだけを絞り、別シート(発注書)に貼り付けて、それを印刷または新しいブックで保存、という作業をメーカーの数だけやらなければいけません。 全く経験がなく途方に暮れています。 VBAは独学でやっている感じなので、在庫管理の方法さえ決まればマクロを当てはめようと思っています。 わかりやすくて、単純で、パッとできるようなものってないですか? 在庫管理をやっている方、こうやると効率いいよ、など何でもいいので教えてくださいm(_ _)mよろしくお願いします。

  • エクセル vba アウトルックで自動メール送信

    vba勉強中です。 初心者のため質問の仕方に不備ありましたらご了承ください。 在庫管理をエクセルで行っています。 使用した日に使用数を入力し当月在庫を管理しているシートがあります。 I列の当月在庫がH列の管理値を下回ったらアウトルックで自動メール送信を考えています。 在庫管理したい品目は40個ほどあります(添付しているファイルは5個としています。) こちらのサイト(https://fastclassinfo.com/entry/vba_outlook_sendmail/)を参考にしていますが、管理値を下回ったらという部分が勉強不足で作成できません。 お手数をおかけしますがお分かりになられる方、よろしくお願い致します

  • エクセル2010または2007でのVBA

    初めまして。 早速ですがエクセルにて、プロジェクト管理票を作っております。 エンジニアが作った作業工程計画のエクセルブックをプロジェクトの通し番号をつけて保存し、 これまでのプロジェクト分すべてを1つのフォルダに保管しています。 その後総務で、この作業工程計画エクセルから、コピー&ペーストでデータを引っ張ってきているのですが、 この作業をVBAで自動化するには、どのようにコードを書けば宜しいでしょうか? ちなみに、コピペするセルは、書かれている情報すべてです。 ですが、あるものはセルA1からG21まで、あるものはA1からC6までしかありません。 よろしくご教示ください。

  • エクセルVBAで質問です。

    エクセルVBAで質問です。 エクセルで商品在庫管理をしていています。 A列(顧客名)B(商品名)C(受注日)D(次回受注日)E(必要在庫数) 中村       あ     7/1    8/1       10 田中       い     6/20    7/30       20 佐藤       う     7/20    8/20       15 中村       あ     8/1    10/1  20 渡辺       う     8/14    9/15 30 中村       か     7/30   8/30 30 A列(顧客名)とB列(商品名)が同じで、D列(次回受注日)が複数存在する場合、 受注日の古い行だけ色を付けることは可能でしょうか?

  • VBAでの在庫管理

    エクセルVBAで在庫管理をしたいと思っていますが、難しく前へ進まず悩んでいます。 すいませんが、ご教授ください。 一つのシートに下表のような表があります。 これをロットをキーとして一行にまとめ、在庫数まで求めたいです。 いい方法はありませんか? 製品  ロット  入庫  出庫  在庫 A   1111  1000       A   1112  1000       A   1112       500 A   1111       500 A   1111  1000

  • エクセルVBA:文字列での検索

    エクセルVBAで、在庫管理をしようとしています。初心者です。 4個のListboxをそれぞれ選んでいくと、任意の商品名になるようにしています。 そこで、選んでもらった後、 Listbox1.List(Listbox1.ListIndex) & Listbox2.List(・・・・ というように4個のListboxから選ばれた文字列をつなぎ、別シートの在庫データベースの「商品名」と「Listboxをつなぎ合わせた文字列」と同じのを探させて、在庫を引き落とすようにしています。 ですが、できる場合とできない場合があります。 何ででしょう? 文字列で突き合わせると、見た目が同じ場合でも違うと認識されることがあるのでしょうか?(半角全角が違うとか、最後にスペースが入っているとかはないです。試しにセルに貼り付けてvlookupで検索してみると、できました。)

  • EXCELで在庫管理をする

    私は薬局に勤めています。薬の在庫管理をEXCELで作ろうとしています。先入先出しをどのようにつくっていいのかわかりません。購入単価も毎回変動します。参考になる本をいろいろ探してはいるのですが、これといったものを見つけられません。在庫管理を詳しく説明してある本はありませんでしょうか。学校でVBAを勉強したのですが、手も足も出ない状態です。ご存知の方がいらっしゃいましたら教えていただけませんでしょうか。よろしくお願いいたします。

  • エクセル VLOOKUPで探したレコードを書き換えるには?

    エクセルで在庫管理をしようと思います。 商品コード  品名   在庫数 A000001   あんぱん   20 A000002   ジャムパン  15 B000001   カップ麺   10 C000001   ジュース   25 上のような商品リストを作ります。 VLOOKUP関数を使用して商品コードを入力すると品名と在庫を表示します。 このときに、その商品を1個売ったとして、在庫を減らすにはどのようにしたら良いでしょうか? VBAを使って簡単なレジ機能を持った在庫管理システムを作ろうと考えています。 宜しくお願いします。

  • エクセルVBA条件に合う行をコピー貼付けるには?

    あつかましいお願いですが、ご教示願います。 まったくの初心者で、いろいろネット検索しましたが自力ではできませんでしたので 質問させて頂きます。 発注在庫管理の業務に使用数、注文数、在庫を記録したファイルがあります。 3か月分のデータが日単位で並んでいるのですが、簡略のため月単位で説明させて頂きます。 旧データをそのままコピーして新データとします。 旧データは9,10,11月のデータ、新データは10,11,12月に更新します。 VBAにしたい作業は添付図の通り、 旧データの10,11月の注文数を、新データの10,11月の注文数にコピペ、 旧データの9月在庫を、新データの先月末在庫にコピペしたいです。 行数は6000行程度あるため。 現在はちまちま手作業でコピペしていますが、担当替えでエクセル不慣れな人間でも 間違いなくできるようにVBAでやりたいと思っています。 ご助力お願いします。

専門家に質問してみよう