Excel VBAで売上管理を作成する方法

このQ&Aのポイント
  • Excel VBAを使用して、売上管理システムを作成する方法について質問します。具体的には、取引先・担当者の入力フォームやマスタ、売上データの入力フォーム、集計フォームなどを考えています。また、1年ごとにブックを分けるかどうかや、マスタの入出力フォームとデータ件数に関する問題なども知りたいです。
  • Excel VBAを活用して、売上管理のシステムを作成する方法について教えてください。具体的な内容としては、取引先や担当者のデータを入力するフォームやマスタ、売上データを管理・集計するフォームなどを作成したいと考えています。また、1年ごとにブックを分けるべきか、セキュリティ上の観点からマスタを別ブックにすべきかなどについてもアドバイスをいただきたいです。
  • Excel VBAを使って売上管理システムを開発したいです。具体的には、取引先や担当者のデータを入力するフォームやマスタ、売上データを管理するためのフォームなどを作成する予定です。ただし、マスタの入力は管理者のみに制限したいです。また、1年ごとにブックを分けるべきかどうかや、マスタを別ブックにする必要性なども教えていただきたいです。
回答を見る
  • ベストアンサー

Excel VBA 売上管理の作り方

以前にQNo.3944241で質問させていただいた者です。 その節は大変お世話になりました。 社内で相談した結果、データ数も少ないので、Excel VBAのみでやってみる事になりました。 Excel VBAに関する本を何冊か購入しました。 初心者用の基本機能を紹介した本でコードを入力しながら実際に動かしてみて勉強して、その1冊は終了しました。 これから、実際に使用する売上管理を作成していこうと思います。 そこで、わからない事が出てきたので、とても初歩的な事なのですが質問させてください。 作成するシートとして、初期段階では下記を考えています。 (データ件数は将来増える事を考えて多めに書いています) ・取引先入力フォーム ・取引先マスタ ------------------ データ数 500件程度 ・当社担当者入力フォーム ・当社担当者マスタ -------------- データ数 100件程度 ・売上(請求書)の入力フォーム ・売上マスタ -------------------- データ数 1000件程度 ・月別取引先毎集計売上一覧出力フォーム ・担当者別月毎売上推移出力フォーム 期(1年)ごとにブックを分けるつもりなので、上記のシート全てをひとつのブック内に収めてしまおうかと思っているのですが、ひとつのブックで良いのでしょうか? 管理者以外はマスタの中身は入力フォームからしかいじれないようにするつもりでいますが、例えばセキュリティの問題上、マスタは入出力フォームとは別ブックにするべきでは?とか、そのデータ件数だとひとつのブック上ではフリーズしてしまうのでは?(私の想像です・・・)と言ったような、実際に使用している方から見たら常識的な事を全く知らないので、教えていただきたいのです。 どうぞよろしくお願い致します。

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

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

こんばんは。 前の質問と今回の質問をざっと読ませていただきましたが、Excel VBAで行うというのは、なれないと返って難しいかもしれません。基本形は、ワークシート上に、全部作って、補助的にVBAを使うようにしたほうが問題が少ないです。Access と違って、そういう点で、Excelは、変更が容易です。 >期(1年)ごとにブックを分けるつもりなので、上記のシート全てをひとつのブック内に収めてしまおうかと思っているのですが、ひとつのブックで良いのでしょうか? その程度は問題ないですね。こちらのブックでは、35,000行をシート(ブックの全体は7M)ひとつに入れても、まったく問題なく動いています。非常に危ない使い方(IEと共用する<-本当は良くない)をしても、フリーズ自体は、数年の間起きてはいません。(ただし、バックアップはとっています。) >管理者以外はマスタの中身は入力フォームからしかいじれないようにするつもりでいますが、 そのフォーム(UserForm)で作っていくのは、想像以上に難しいです。かなりベテランの人やプロの人でも、Excel VBAのUserForm を本格的に使っていくのは難しいと思います。バージョンのせいなのか分かりませんが、どうも、へんな現象が出ます。また、私個人は、そのUserFormのタイムラグがある(立ち上がりが遅い)ので、そのタイミングのずれで、しっくりとこないです。VBは、フォーム優先ですが、Excelはオブジェクトが外部にあるので遅いのです。それに、今更、旧バージョンのダイアログシートを使うことも出来ませんね。 シートに取り付けたコントロールツールなどは良いと思います。 入力用のシートを用意するとかのアイデアはどうでしょうか。 いずれにしても、今、考えていることをすべてVBAで移植するようには考えないことですね。あくまでも、VBAは補助的に考えたほうがよいです。毎年、ひとつずつVBAのユーティリティをオプション的に増やす方向でもよいと思います。私が最初に考えた頃は、だいたい、3年越しです。

minami_no_
質問者

お礼

お礼が遅くなりました。 丁寧なアドバイスありがとうございます。 >その程度は問題ないですね。こちらのブックでは、35,000行をシート(ブックの全体は7M)ひとつに入れても、>まったく問題なく動いています。非常に危ない使い方(IEと共用する<-本当は良くない)をしても、フリーズ自>体は、数年の間起きてはいません。(ただし、バックアップはとっています。) 実際に使われて問題のないサイズなど教えていただけて嬉しいです。 私の検索の仕方が悪かったのかもしれませんが、本やネットで探してみても、ブック内のシートの設計や問題無く動くサイズなどを明記したものが見つからずに、独学で進めようとするには困っていました。とても助かります。 >入力用のシートを用意するとかのアイデアはどうでしょうか。 はい。入力用のシートを作成してコントロールツールでやってみようと思います。 >いずれにしても、今、考えていることをすべてVBAで移植するようには考えないことですね。あくまでも、VBA>は補助的に考えたほうがよいです。毎年、ひとつずつVBAのユーティリティをオプション的に増やす方向でも>よいと思います。私が最初に考えた頃は、だいたい、3年越しです。 そうですよね。 しかも、私は今までExcelさえも殆んどワープロ感覚でしか使っていなかったので(関数もSUMを使うくらいで、帳票の清書に使っていたような感じ)、いきなりVBAで四苦八苦しています。 今も進めていますが、ちょっと進んでは止まって、またちょっと進んでは止まってを繰り返しています。 来期の期首(今年の10月)から使用開始の予定ですが、実際に使用を開始したらまた不具合が出てくる事もあると思います。 私も3年かけて、「これで大丈夫!」と言えるような物を完成させられるよう頑張っていこうと思います。 ありがとうございました。

関連するQ&A

  • エクセルをデータベースとして使用する場合の限界は?

    エクセルをデータベース代わりに使用して、生産管理をしています。(主に納期の管理) 1つのブックを1つのテーブルとして使用して、製品マスターテーブルから製品情報を呼び出して、売上テーブルに書き込むといった感じです。 (売上用ブック=売上テーブル。製品マスターブック=製品マスターテーブル) 売上テーブルは、古くなった行(納品完了した行)はその月ごとに切り取って、別のブックとして保存しています。(使用しないデータでブックの容量が増えないようにするため。) 今までは、売上ブックは4,000件(行)くらいのデータ量でしたが、最近8,000件(行)にまで使用することがあります。(売上金額は伸びないのですが、小分けの注文が増えて)(製品マスターは1,500件くらいで固定してます。) 今までもブックを保存するときに失敗して、入力中のデータが消えたりすることがたまにありましたが、件数が増えてから頻繁に失敗するようになりました。 件数が増えたことが原因だと思いますが、もともとエクセルをデータベースとして使用する場合、行数の限界はどれくらいなのでしょうか? SQLサーバーなどでデータベース化したほうがよいでしょうか?(マルチユーザーとしても使用したいので) どなたか教えてください。

  • Excel VBAで項目ごとに別々のシートに転記したい

    excel VBAで項目ごとに別々のシートに転記したい 困り度: すぐに回答を! excelVBA勉強中の初心者です。 初めて質問させていただきます。 初心者には難しく、行き詰ってしまいました。 仕事で以下のことがしたく、基本書、参考書などを調べて勉強し作成していっているのですが、身近に教えていただける方もおらず、つまづいております。 詳しい作成方法など、詳しい方にご教授いただければと思います。 book(1) 一ヶ月分の売上データが入っており、     A列に取引先名     B列に商品名     C列に件数     D列に合計額     があります(1万行前後)。 book(2) シート1に抽出したい取引先名の一覧(50件ほど)、      シート2以降は転記用でA列に商品の一覧(固定)、      例えば4月分であればB列に件数、C列に金額、     5月分であればD列に件数、E列に金額・・と一年間使用するため、件数・金額は12か月分用意してあります。      シート1にある抽出したい取引先ごとに作成しています。 (1)の売上データを、(2)にあるシート1の取引先一覧と一致するものを抽出して、取引先ごとに分けてあるシートに転記したいのです。 ※(1)の売上データには抽出不要の取引先も多数含まれています。 ※(1)の売上データは同じレコードが存在する場合もありますが、すべて別々のものとみなし、転記先シートには件数・金額ともに合計を表示したい 以上です。 よろしくお願いします。

  • EXCEL VBA 共有ファイルと入力フォーム

    データ入力を複数人で行うため、素のデータBook Aと入力フォームを持つBook Bがあります。 Book Bを開くと自動的にBook Aを開き、入力フォームでデータをBook Aにデータを入れていくVBAを作成しています。 EXCELのフォームはそのBook上での起動でPopUP的に表示されます。(Book Bのシート表示上でフォームが表示される) ユーザーからの要望で、Dataの入力状況を確認しながら、入力したい。つまり、Book Aのデータシートを背面に表示して、その上に入力フォームを表示したい。(入力フォームは常に手前に表示したい) 同じBooK内ならデータシートをセレクトしてフォームを開けばいいのですが、このような場合には、どうしたらいいでしょうか? お知恵をお貸しください。

  • EXCEL VBAについて

    VBAでCSVファイルをテンプレートのBBOKに読込むコードを 作り、CSVファイルから読込んだBOOK1データを集計する BOOK2を作成しています。 BOOK1・11/21・・・11/21・・・11/22・・・11/23と続きます      A     B     C      D 1  ID     店名   売上    日付 2 1104567   渋谷店  190,809   11/21 3 1102031   新宿店  209,808   11/21 4 1103450   横浜店  108,765   11/21 BOOK2・集計      A    B    C       D       E 1  ID   店名   11/21    11/22     11/23 2 1104567  渋谷店  190,809   203,487 3 1102031  新宿店  209,808   340,876 4 1103450  横浜店  108,765   547,627 ※BOOK1とBOOK2のIDの並び順は一致していません。 上記のBOOK1のデータをBOOK2に読込ませたいと考えています。 VLOOKUPやINDEX関数を使用しようかと考えたのですが、日付毎に ファイル名が違うのと、集計のファイルには外部参照をさせたくないと 考えています。 VBAで作成したいコードはBOOK1からBOOK2の日付のセルにIDを検索条件として日付毎のファイルを読込ませたいです。 フォームで日付を入力し、コピーするBOOK2のセルを指定後、BOOK1を選択するためにダイアログボックスを出したいです。 BOOK2のIDを検索条件としてBOOK1から一致する売上セルを抽出するコードだけでもわかれば何とか作成できそうなのですが、 ご教授いただけませんでしょうか?

  • VBA 印刷について教えてください

    シートにデータを日ごと入力しています。そのデータを印刷をかけたいのですが、その日ごとに件数が異なります。 1行目は、項目 その下からデータになります。 件数は200件の時もあれば、300件のときも・・・ そこで、VBAを利用して印刷をしたいのですが、1枚に40件印刷をしたいのです。 1行は項目、40行データ よって一枚に41入る事のなります。 見出しの設定はわかります。 2枚目は 42から82 3枚目は 83から122 という感じです 行は、kまで 用紙はA4横です どのようにVBAを組めばよろしいでしょうか? よろしくお願いいたします。

  • エクセル(EXCEL)VBAで行自動分割

    エクセル(EXCEL)VBAの質問です。数万行にわたって入力されているデータがありますが、これを1000行づつに分割して、別々の新規BOOK(またはSHEET)へコピーしていきたいのですが、これを実現するVBAを教えていただけ ないでしょうか? VBAマスターの諸兄方、どうぞ宜しくお願い致します。

  • 各部署、各チーム、個人ごとの売り上げ管理について

    現在、各部署、各チーム、個人ごとの売り上げを管理するDBの製作を行っております。 Microsoft Accessです。 テーブルは、 T_取引先 ・取引先ID ・取引先情報 ・担当ID(個人) T_個人 ・担当ID ・個人名 ・チームID T_チーム ・チームID ・チーム名 ・部署ID T_部署 ・部署ID ・部署名 T_注文履歴 ・履歴ID ・日時 ・取引先ID ・商品番号 ・個数 個人が複数のチームや部署に所属することはありません。 部署 < チーム < 個人 のピラミッドとなっております。 これで月初に、先月の売り上げを以下のようにプリントアウトを したいと思っております。 ============================================= 部署名1 売り上げ額 件数 ============================================= チーム名1(上記部署に所属するチーム) 売り上げ金額 件数 --------------------------------------------- 個人名1(上記チームに所属する各個人) 売り上げ金額 件数 個人名2 売り上げ金額 件数 個人名3 売り上げ金額 件数 --------------------------------------------- チーム名2 売り上げ金額 件数 --------------------------------------------- 個人名4 売り上げ金額 件数 個人名5 売り上げ金額 件数 個人名6 売り上げ金額 件数 個人名7 売り上げ金額 件数 --------------------------------------------- チーム名3 売り上げ金額 件数 --------------------------------------------- 個人名8 売り上げ金額 件数 個人名9 売り上げ金額 件数 個人名10 売り上げ金額 件数 ============================================= 部署名2 売り上げ額 件数 ============================================= チーム名4 売り上げ金額 件数 --------------------------------------------- 個人名11 売り上げ金額 件数 個人名12 売り上げ金額 件数 個人名13 売り上げ金額 件数     ・     ・     ・ こういうことは可能でしょうか? できれば、売り上げの多い部署順や、部署の中でも売り上げの 多いチーム順など変更が出来ればベストです。 また、このようなものを作る際に気をつける点はありますでしょうか? 今まで、顧客DBなどを作成し、様々な条件に対して絞込み などをしたリストを最終的に印字して郵送するなどのものは 作ってきましたが、このような複雑な出力をしたことがなく 迷っております。 まだ、漠然としているかもしれませんがよろしくお願いいたしします。

  • エクセルVBAのユーザーフォーム

    こんばんは、エクセルVBAでユーザーフォームを作成しました。 そこに入力したものがブックに反映するわけですが、フォームに0(ゼロ)を入力した場合、ブック上のセルを選択すると0と入っているのですが、表示されません。なぜでしょう???? これができないとせっかく時間をかけて作ったのに、使えません。どなたかご存知の方よろしくお願いします!!!!

  • Excel2003VBAリストの管理

    お世話になっております。 表題の件で ご相談が御座います。 現状、住所録のようなリストを担当者毎に名前を付けて担当者のローカルに保存してもらって 管理・入力してもらっています。(仮にbook ABC~Jとして) そのリスト(book ABC~J)を毎日メールに添付して送信してもらい、自分の保管している大元のbookに移しています。(仮にbook「あ」とします) その時に各担当者が おかしな入力をして寄越したら修正して送り返したいのですが 自分が いちいち全員のシート(book ABC~J)にパスワード付の保護を掛けてしまったので編集する際に保護を解除してから やらなければいけないはめになりました。 保護を掛けないのは方法の1つとしてありますが それはあまりにもリスキーなのでやりたくありません。 VBAに不可能は無いと信じておりますが マクロを実行する度にbook ABC~Jのシートの保護を解除し、閉じる時には自動的にパスワード付で保護を掛けて閉じる(アクティブになっているブックを)というような事は可能でしょうか? イメージとしては 自分の管理するbook「あ」にVBAを登録しておき、開いている全てのブックに有効になるようにしたいと考えているのですが どなたか お分かりになる方、ご教示いただけますでしょうか。 現在「かんプロVBA」勉強中で御座いますが「基礎編」なので色々ご迷惑をお掛けするかと存じますが 何卒宜しくお願い致します。

  • エクセルVBAを使って請求書作成ソフトを作りたい

    VBAという言葉を初めて知ったばかりの初心者です。 現在エクセルで顧客名簿、顧客別売上帳、請求書用紙を作っています。 今までは手書きをPCに代えただけで、エクセルを使っている意味といえば、ナンバー登録している顧客名簿からVLOOKUPを使って請求書に顧客名、住所を自動で移す作業位です。 今回、売上が上がると売上帳、請求書に同時に転記できるようなソフトを自分で作ろうと思ったのですが、早くも行き詰まっています。 構想としては、 (1)ユーザーフォームで顧客NO.を入力すると氏名・住所データが確認のため出る。 (2)合っていれば、何月何日締、品名、数量、金額等を入力をする。 (3)登録ボタンで、別シート(ブック)に顧客別の売上帳を用意して、フォームに書き込んだ内容を転記する。 (4)請求書ボタンで、フォームの内容が既存の請求書用紙に転記される。 顧客数は900件ほどで年間稼働している顧客は70件程度です。 果たしてエクセルVBAで作ることは可能でしょうか? またそのために参考にできるサイトがあれば教えていただけないでしょうか? いくつかサイトを見た結果、シート内でマクロの登録をさせる方法は何となく理解できるのですが、上記のような方法になると全くお手上げです。 コードの意味などを書いてあるサイトはないでしょうか? 参考にしたいと思っても、アルファベットの羅列の内容が理解できないため、自分で理解できません。 どなたかよい勉強方法を教えてください。 宜しくお願いします。

専門家に質問してみよう