• 締切済み

エクセルでデータベース

最初から「アクセスを使え!!」とお叱りを受けると思いますが、アクセスが無いため、エクセルで何とかしようとたくらんでおります。 本題に入りまして… まず、シート1に顧客リスト(コード、氏名、住所… )と入力してあります。 シート2には顧客毎に請求月日、売上額、値引き等を入力していきます。 シート3には請求月日(毎月5の倍数)を入力します。A列に1月5日、1月10日、1月15日…というように、12月30日まで入力してあります。 ここでデータベースとなる!?わけですが、VBAでフォームをつくり、シート1に入っている氏名から、該当する顧客を選んで、シート2に各項目ごと、データを入力するというものです。シート2に入力する項目の中で、請求年月日はシート3から選ぶようにします。 なお、もしシート1の顧客リストに該当者が無い場合(新規)は、シート1の顧客リストに追加し、追加した後、シート2にデータを入力できるようにしたいです。 ちなみに、顧客数は400件くらいあります。 VBAは超初心者で、命令文などがほとんど理解できないので、勝手でずうずうしいお願いなのですが、説明があると非常にありがたいです。 よくわからない質問をして、なおかつ無謀なことをやろうとしている私に、お力をお貸しくださいm(__)m

みんなの回答

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.3

例えばプロジェクトAという会社の書籍(古川順平/著など)に、Excelでデータベースをやるための方法を解説しているものがあります。 その他にもいろんなExcelデータベースの本があります。 http://books.yahoo.co.jp/bin/search_key?p=Excel+%A5%C7%A1%BC%A5%BF%A5%D9%A1%BC%A5%B9&pp=1&sc=7 ですからそちらをごらんになった方が早いと思いますよ。 ご質問の内容的はAccessでやればすぐにできるような事ですが、Excelでやるとなるとボリュームが大きすぎてここでは解答する側もできないと思います。

参考URL:
http://books.yahoo.co.jp/bin/search_key?p=Excel+%A5%C7%A1%BC%A5%BF%A5%D9%A1%BC%A5%B9&pp=1&sc=7
jun11jun
質問者

お礼

無謀な質問をして申し訳ありませんでした。早速、書店に行き、ご照会いただいた本などを参考にやってみたいと思います。ありがとうございました。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

VBAがほとんど解らず丸投げのつもりなら、正直本当に無謀だと思います。 そもそもシート1(コード、氏名、住所…)、シート2(売上額、値引き等)のようにデータ構造を省略しては書けませんし、シート2の「顧客毎に」入力していくと言うのも、どんなデータの持ち方をするつもりなのか私には解りませんでした。 実際に見てアドバイス出来れば簡単な事でも、こういった場では質問者の意図するものを回答者が予想で書き、質問者がそれを汲み取って応用出来ないと成り立ちません。 実際、どの程度まで自力で実現出来る知識をお持ちですか? シート2に顧客コードを入れる事で他のデータはVLOOKUP関数で表示させ、請求日は入力規則のリストで設定しておく。。。とかではダメなのかな?

jun11jun
質問者

お礼

周りにVBAを知っている人がいなく、自分でも無謀と知りながら載せてしまいました。申し訳ありませんでいた。本などを読み、独自で調べたいと思います。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

質問の表現上のことで補足をお願いします。 (1)シート1はいわゆるマスターファイル(記録)に該当するものと思われ理解できます。 (2)シート3も請求月日が複雑と思ったのか、別にするのも判らなくも無い。計算できるのではとも思う。 (3)判らないのはシート2で、いわゆるトランザクションファイル(記録)にあたるものだと思うのですが。 (4)今後日々入力して完成したいのはシート2ですね。 (5)シート2のデータを入力する時、キーとして何を入力するのか。(顧客)コードで無いのですか。何も書いてないですが。コードよりシート1の氏名・住所を取ってくるのでしょうね。 (6)値引きは売上ごとに、営業等がそれぞれ決めるのですか。得意先ごとに一定していないのですか。品物ごとに 違うとか。 (7)あと入力項目は(A)売上高(B)値引き額など。 (8)売上日は記述が無いが入力しないですか。請求日が それにより決まるのでは。得意先ごとに締めルール(月末 締め、25日閉めなどバラバラではないのですか。) (9)あと他に入力項目として、担当者(営業)や売上品・数量・単価などあるのでは。これはまあ記述を略したと考えましょうか。 -------- 本件ポピュラーとはいえ、ビジネス課題を丸投げに近く、OKWEB上で質問して、回答してもらうには、回答者が回答を考え、記述するのに長時間を要し、内容が長く複雑過ぎて、適切ではないのではと心配します。 それもVBAで無いと処理は出来なかろうし。

jun11jun
質問者

お礼

私自身、課題を丸投げにしていたと、深く反省しております。周りにVBAを知っている方がいなく、どこにも相談できなかったので、こちらに載せました。書店などに行って、関連する書籍にて勉強したいと思います。ありがとうございました。

関連するQ&A

  • EXCEL 請求書を発行したいです

    EXCEL2010で、 顧客数分のシートが有り 概ね100位  (シート名は便宜上"1" "2" "3" ・・・と数字です) 各シートには顧客名と顧客毎にレンタルしている商品の一覧表があります。 顧客ごとに商品の数が違い 1項目の場合もあれば 10項目ある顧客があります。 毎月60/100位の顧客に請求書を発行していますが、 上記シートのデーターを元に決まった書式の(EXCELです)請求書を出力したいです。 請求書の商品一覧欄に各シートの商品を入れたいのですが、 請求書上は、商品数+1行 位で収めたいのです。 現在は、各シートがそれぞれの顧客の請求書になっていて、 毎月商品を修正 印刷して請求書を出していますが、 頻繁に商品の追加、削除があり その都度 行を追加・削除しております。 又 追加削除に伴い並べ替えも実施しています。 計算式が入ってあるセルが中にあるので 行を追加・削除することで、 再度 確かめ算をする必要があり、この作業が現在負担になっております。 入力作業は、一度の作業で、一覧と請求書は、 別にできないかと考えたのがとどのつまりです。 何か良い方法ございませんか? VBAでもマクロでも結構です。 ご教授願います。

  • エクセルで入力した内容の消去方法

    エクセルで、VBAを使用し、シート1に顧客情報(氏名、年齢、番号等)を入力し、ボタンを押すことでシート2にその内容を反映させるプログラムを作成しました。 ところが、入力後前のデータが残ってしまい、いちいちそのデータを消去しなくてはならず、困っています。 何か入力項目のみを一括して消去できるような方法はありますでしょうか? 宜しくお願いします。

  • エクセルのデータベース化

    説明が苦手なので、ずばりそのままお聞きします。 よろしければ教えてください。 中分類10項目、小分類5項目、計50項目のデータを 1つの決められたシートのフォーマットに入力し、 それを1回入力するだけで、中分類それぞれに決められたシートへ、 フォーマットで指定された日付の欄にコピーしたいのです。 入力用のシートには、中分類をA~J、小分類を6~10とし、 日付を、年がA1、月がB1、日がC1としています。 データベース用のシートには、A5~A35に1日からの日付、 B列には曜日、それとC5~L5を1日として35行目まで 1ヶ月単位としてあり、それが10シート分あります。 たとえば、日付を5日とすると、 入力用のシート50項目に入力したデータが、 各シートのC10~L10にコピーされるには どうすればいいんでしょうか? 思ったことをちょっとやってみようと思ったのですが、 何も思いつかなくて、お願いする次第です。 おわかりの方で、もしよろしければ教えていただきたいのですが。 説明、わかりづらいかもしれませんが、よろしくお願いいたします。

  • データベースを検索するマクロ(エクセルで)

    エクセル初級者です。 データベース化してある顧客名簿がsheet2にあり、A列は個人別コードが、B列は氏名、C列は郵便番号、D列は住所、・・・といった感じになってます。 教えていただきたいのは、sheet1上で氏名を入力して検索するフォームを作り、検索の結果、ヒットしたすべてがsheet3上に抜き出す方法って可能ですか? うまくいえないのですが、例えば「佐藤」と入力して検索ボタンを押せば、sheet2のすべての佐藤さんのデータがsheet2の形式と同じ形でsheet3に表示されるようにしたいのです。 情報に不足があれば補足しますので、どなたかVBAの書き方を教えてください。よろしくお願い致します。

  • エクセルの並び替えについて

    エクセルで顧客管理をしています。 「基本情報」と名前を付けたシートに名前や住所などの情報が入力されたリストがあり、同じファイルの別のシートにそれぞれの顧客の基本情報とは異なるデータが入力されたリストがあります。 「基本情報」シートに新しい顧客が追加されたときに、別のシートの顧客名にも新しい顧客名が追加され、自動であいうえお順に並び替えがされるようにしたいのです。 質問内容が分かりにくかったらごめんなさい(T_T) 不明な点があれば、聞いてください。 よろしくお願いしますm(__)m

  • エクセルでマクロを書きたい 

      A   B  C  D  E  ・・・ 1     1  2  3  ・・・ 31 2 氏名  月  火  水  木 ・・・ 3 田中  1     1 4 中村     1 5 鈴木     1 6 ・ ・ ・ 上記のように1ヶ月ごとの顧客の来店予定日に1が入力されています。このデータを元に、日にちごとの来客予定リストを作成したいです。 来客予定リストは1週間毎にカレンダーのような形で表にしますので、抽出したリストを該当する日にちの列に書き込むのが理想ですが、まずは、日にちごとの利用者を別のシートに書き出すマクロを教えていただけると助かります。

  • エクセルのVBA

    お世話になります。 ただ今,VBAで以下のことに挑戦していますが,行き詰ってしまいました。皆様のお知恵をお貸しください。 1.エクセルで,ある図形をクリックすると,インプットボックスが開き,「顧客番号を入力」と出ます。 2.顧客番号を入力すると,「顧客管理」というシートのD1セルにその番号が入力されます。 3.その顧客番号をもとに「顧客名簿」というシートのデータから,その顧客の住所や性別などのデータがvlookupで引っ張ってこられます。 そこでご相談です。上記の2の操作で,顧客番号を入力後,すぐにD1セルに番号が入力されるのではなく, メッセージボックスでの確認画面「○○さんのデータを表示しますか」(○○には顧客番号に該当する顧客名が入ります)というものを表示させ,OKを押せば,D1セルに番号が入力され,キャンセルを押せば,単純に,メッセージボックスが閉じる という機能を追加したいのですが。ちなみに,現在のVBAは以下の通りです。 Dim ans As String ans = InputBox("顧客番号を入力", "入力", "") If ans <> "" Then Sheets("顧客管理").Select Range("D1").Value = ans End If End Sub これの,どこにどのようなプログラムを追加したらいいのでしょうか。 よろしくお願いします。

  • エクセルでのデータベース作成

    今,顧客の訪問日付の管理をしようと思っています。顧客の名前(A1),日付(B1)に入力し,次に訪問した日をC1に入力していくという方法で,データを作成しようと思っています。 そこで問題は,このデータを基に訪問日付の古い顧客を選び出したいのです。フィルタを使用してもなかなかうまくいかず悩んでいます。 Accessは使ったことがなく,エクセルでどうにかならないものか考えています。何か良い方法はありますか?また、Accessを使用するとすれば,どうすれば良いでしょうか。 漠然とした質問で申し訳ありませんが,よろしくお願いします。

  • EXCELのデータベース

    EXCEL2000を使用しています。 VBAを使ってデータベースを作ろうとしているのですが、ちょっとわからないのでどなたか教えてもらえませんか。 データベースへの入力はUSERFORMを使います。 USERFORMの内容は、 コンボボックス、テキストボックス1,2,3、コマンドボタン”登録”、”終了”です。 まず大項目は"SHEET DB"のA1:A120に入力されており、”発注者”、”請負者”、”病院”・・・・というのがあります。 この項目はUSERFORMのコンボボックスにセットされます。 次にテキストボックスの入力項目が3個あり、 TEXTBOX1 ・・・名前 TEXTBOX2 ・・・電話番号 TEXTBOX1 ・・・FAX を入力します。 発注者のデータベース入力範囲はA2:C100で、次の大項目、請負者のデータベース入力範囲は、D2:F100と言う風に延々と続きます。 USERFORMのコンボボックスで大項目を選択し、テキストボックス1,2,3の入力を入力し、コマンドボタン"登録"を押すと、大項目のデータベース範囲にテキストボックスのデータの空白行にデータが登録されます。 大項目が1個しかない場合は出来るのですが、大項目が複数になった場合の条件の設定がよくわかりません。 大項目の下図は数十個あり、1個1こセルに入力するのは大変で苦労しています。 VBAのプロの方なら初歩的すぎる事かもしれませんが、ビギナーな私にわかりやすくどうかご教示願います。

  • エクセルでリストにないデータを示す方法

    シート1に、顧客のリストがあります。 <シート1> A B C ・ ・ シート2に、その月に取引のあった顧客の名前があります。 <シート2> B C X C G B という具合です。 Xさん、Gさんは新しい顧客なので、シート1のリストに追加したいのです。 しかし、シート1のデータも膨大であり、シート2のデータも膨大なので、手作業では困難です。 そこで、シート1のリストにない顧客の名前だけ、シート2で目立つような(あるいはピックアップするような)方法がないでしょうか。 よろしくお願いします。

専門家に質問してみよう