• 締切済み

エクセル2003 シート上部で作成した表をしたに反映させたい。

excel2003で、顧客マスタというものをつくっています。 シート上部ので入力した表のデータをコマンドボタンを作り(決定ボタン)、ボタンを押すと、シート下の方に一覧という形でデータが反映されるように作りたいです。 下の表はどんどん下に追加されていき、上の表は決定ボタンを押すとデータがまた新しく入力できる状態になる・・・というプログラムを作りたいです。EXCEL2003でVBA初心者です。

みんなの回答

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

上部には入力、下部は今まで入力したデータの明細を累積したい、で良いのかな。 上部と下部は第100行目とか(固定で)でよいかな。累積は別シートにしたほうが良いように想像するが。 まず (1)上部での入力最終行はどうして捉えられるの (2)下部の累積最終行はどうして捉えられるの (3)上部を下部に移す(移す)方法 (4)下部に移すキッカケのコマンドボタンを作る こういう風に、必要な事項(必要なスキルと似ている)に分解できないと、解決しない。 本当は(1)-(4)のどれかに絞って、ここへ質問すべきだ。現状では丸投げになっている。(4)は判っているでしょうね。 ーー 例データ A1:J9(E列以右列略) x y z u 2007/12/2  2 2 sss 2007/12/3  3 3 fff 2007/12/4 4 4 ggg 2007/12/5  5 5 sd 2007/12/6  6 6 er 2007/12/7  7 7 ty 2007/12/8  8 8 yui 2007/12/1  9 2 sw 第30行に(上記では第100行目といったがテスト用に第30行にした)見出しをコピーしておく。 x y z u コード コマンドボタンのクリックイベント Private Sub CommandButton1_Click() d1 = Range("A30").End(xlUp).Row MsgBox d1 d2 = Range("A65536").End(xlUp).Row MsgBox d2 Range("a2:J" & d1).Copy Range("A" & d2 + 1) End Sub (Msgboxは本番では削除のこと) 実行後 AJ30:J38 x y z u 2007/12/2 2 2 sss 2007/12/3 3 3 fff 2007/12/4 4 4 ggg 2007/12/5 5 5 sd 2007/12/6 6 6 er 2007/12/7 7 7 ty 2007/12/8 8 8 yui 2007/12/1 9 2 sw もう一度クリックすると x y z u 2007/12/2 2 2 sss 2007/12/3 3 3 fff 2007/12/4 4 4 ggg 2007/12/5 5 5 sd 2007/12/6 6 6 er 2007/12/7 7 7 ty 2007/12/8 8 8 yui 2007/12/1 9 2 sw 2007/12/2 2 2 sss 2007/12/3 3 3 fff 2007/12/4 4 4 ggg 2007/12/5 5 5 sd 2007/12/6 6 6 er 2007/12/7 7 7 ty 2007/12/8 8 8 yui 2007/12/1 9 2 sw となった。 これは累積テストの成功と、2度ボタンを押すと、同じデータを2度累積する危険性も示している。 とりあえず防止策は、利用者の実情も踏まえ、質問者で考えてください。略。

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

何ができないのですか? ごく基本的な操作で全てできると思います。 全部作ってほしいということでしょうか? Cells(Row,1)=Cells(1,1) でRowに整数を入れればA列のRow行にA1の値を入れられます。 A1を消したいときは、 Cells(1,1).Clear でいけます。

関連するQ&A

  • excel2003 列55~下のシートのみをスクロールさせたい

    急いでいます。 Excel2003を使っています。会員マスタを作っていて、 シート上部にもとの表があり、下部に顧客の購入履歴の詳細を表で作成しようと考えています。 列55~下のシートのみをスクロールさせることは可能ですか? 出来れば、自分でスクロールバーを作成して作りたいです。 無茶を言えば、シート上部の元の表で詳細を入力する欄を設けて、決定ボタンを作り、クリックするとしたの表に自動で追加されるなんて事は出来ませんか?? vba初心者です。

  • エクセルシートのコピーとシート名の変更&集計表

    エクセルの集計に関して初心者です。1シートに同じ内容で各顧客のデータを同じフォームで入力しています。これを新しい顧客が出てくるたびにシートコピーしているのですが、VBAでボタンでコピーできるようにしたいです。 /Users/inouehirotaka/Desktop/スクリーンショット 0030-09-17 11.55.37.jpg さらにこれらの各シートの内容を集計表で一覧にしたいのですが、良い関数もしくはVBAでの転記方法をお教えください。 /Users/inouehirotaka/Desktop/スクリーンショット 0030-09-17 11.56.28.jpg 色々VBAで試してみたのですが、どうもうまくいきません。ご教授よろしくお願いいたします。

  • シート2の値をシート1に反映

    コマンドの入力ボタンでExcel sheet2の値(マーク)をsheet1へ反映したいのですがその際、事前に手入力している▼、●を消さずに氏名、日付がマッチしたところにマークを入力されるコードがありましたらご教授のほどよろしくお願いします。

  • エクセル2000でシートの一番下に反映させたい

    <一覧シート> 会社名:品名:日付:数量:金額 A社  ○:11/1:10個:1000 A社  ○:11/3:10個:1000 A社  ×:11/2:10個:2000 B社  △:11/1:5個:500 B社  ▲:11/2:5個:500 上記の様なデータが入力してあり、入力するだけの シート(入力シート)が別にあります。 入力シートのデータ(例えば、A社○11/4 5ヶ出荷)が そのまま、一覧シートの入力されているデータの一番下に くるようにしたいのですが、 随時、出荷があり行が追加されていく為 =でセルを指定する事ができなくて困っています。 また入力が複数ある場合も、そのまま一覧シートの一番したに 反映させたいのです。。 解かりにくい説明で申し訳ありませんが、よろしくお願いします。

  • EXCEL VBAで複数シート内のセルをまとめて表を作成

    EXCELマクロ(VBA)を教えてください。 なやんでいることは、 目的:シート1からシート5までの表の値をシート6に一覧表を作成させる。 ・シート1からシート5まで シート内の表からセル値をコピーしてマクロで(ボタンか何かで)シート6にシート1からシート5のセル値を貼り付けていくような動作をさせられるようなプログラムをつくりたいです。    表(一覧)を作成させたいので わかる方プログラミングを教えてください。よろしくお願いします。

  • Excelで作成したフォームからデータをシート上に反映したい

    初心者です。 同じ形式のデータを、項目ごと(フォームでつくった入力欄ごと、って言い方でわかりますでしょうか)にセルに振り分けて、 上から順にシート上に入力していきたいのです。 VBAマクロをつかって作ってみたのですが、一つの行に対してしか反映しないものしか作れませんでした。 何か良い方法はありませんか?

  • Excel シートを自動作成、セル値をシート名に 

    エクセルのマクロの自動記録で作業の効率化を図りたいのですがうまく出来ません、ご教示いただけ無いでしょうか。 (VBAは初心者です。本とネットを検索しながら作成していたのですが、 急きょファイルを作成しなければいけない状況になりました。) ■Excel2010 ■ブック詳細 ・Sheet"企業一覧" → 行ごとに企業名、シート名が記載された表があります。   A列 企業名   B列 シート名 ・Sheet"マスタ" → 見積書のフォーマットがあります。   A4 企業名  ■希望作業 シート「企業一覧」の企業ごとにボタンを作り、ボタンを押すと 1."マスタ(Sheet)"のコピーが作成され、 2.コピーされたシートのA4セルに"企業一覧(Sheet)"A列の企業名が記載され、 3.コピーされたシート名に"企業一覧(Sheet)"のB列のシート名が記載され、 4."企業一覧(Sheet)"のB列のシート名に新しいシートへのハイパーリンクを付け 5."企業一覧(Sheet)"に戻る ※下記作業ができません。 ・コピーされた新しいシートに、シート名が付けられない。 ・"企業一覧(Sheet)"のシート名にコピーされた新しいシートへのハイパーリンクを付けられない。 ※シートのコピーは可能なら"企業一覧(Sheet)"の企業名表記順に作成したいと思っています。 ※各企業行ごとにボタンを作るのは面倒なのですが、 企業名/シート名の表記がよく変更になるため、入力と同時にマクロが実行されるのではなく、 何かワンクッションを置きたいと思っています。 ※シートのコピー作成、企業名の記載までは出来たのですが、 その他の作業ができません。よろしくお願いいたします。 --------------------------- Sub Sheet作成() ' ' Sheet作成 Macro ' ' Sheets("マスタ").Select Sheets("マスタ").Copy After:=Sheets("マスタ") Range("A4:B4").Select ActiveCell.FormulaR1C1 = "=企業一覧!R8C1" Range("C4").Select Exit Sub End Sub --------------------------

  • エクセルで、シートごとの計算結果を別の表にする方法

    同じ形式のデータシートが100枚ぐらいあり、このシート上で計算をした結果が10個ほどあります。この結果の一覧表(100×10)を作り、グラフを作成する必要があります。 このとき、一覧表の先頭のセルにシート名とセルの番号を計算式としていれて、つまんで引っ張り100までカウントアップして計算式を入力させたいのですが、うまくいきません。いちいち入力するのは邪魔くさいので、いい方法があれば教えてください。 VBAはよく分かりませんが、解決するならやってみますのでよろしくお願いします。

  • `excelを使った顧客(利用者管理)表の作成

    excelを使用した、顧客管理表などを検索しましたが、私の思っているものが出てこなかったので、こちらで質問させていただくことにしました。 私は施設で事務をしており、顧客(利用者さん)のリストの管理をしています。 新しく入居される方、そして退去される方が月に数名はあるために、その都度リストを更新しています。 Sheet1に利用者さんの情報を一覧でまとめています。 そして、その他のページに、誕生日、朝食の志向、健康診断の日付管理、緊急連絡先一覧など、各一覧を再度手入力で入力して修正をしています。 そのため、コピーミスや、うっかり手が当たってリストに必要のない文字が混じってしまったり、何かしらのミスが発生してしまうことがあります。 それを割けるため、また作業効率をあげる為に、下記のような私の求めるものはできますでしょうか? 個人情報の一覧を作成し、それを元に、たとえば、シート2には誕生日の一覧。 シート3には、緊急連絡先一覧、シート4には健康診断の日付管理表。 等というように、再入力しなくても、元の一覧データーさえ変更すれば、他のシートに反映されるような一覧表を作りたいと思います。 顧客一覧は、削除されることはなく、たとえば一覧上で「現在の利用者」「退会された方」という項目を入れておいて、現在の利用者を選択すると一覧表示される。 っというような物です。 本当は、こういうのはアクセスというのを使うとよいと聞きましたが、会社にはもっておりません。 あと、色々とネットで調べるのですが、当方、アメリカに住んでおり、エクセルも英語で表示されることもあり、使い方がいまいち把握できておりません。 初心者にでも分かるように、もし、私の構想が可能でしたら説明をしていただけるととても助かります。 どうかよろしくお願い致します。

  • 【エクセル】シート間で反映させたいのですが、結合されたセルがあるため困っています。

    お世話になります。 あまりエクセルに詳しくないのですが、データをエクセルで表にまとめなくてはならなくなりました。 データは複数シートでまとめています。 Sheet1にすべてのもととなる名簿をまとめ、このシートを更新すると他のシートにも自動的に反映するようにしたいと考えています。 その方法として、「=Sheet1!A1」などと入力して反映させようとしていたのですが、複数あるシートのうち何枚かは反映させたい部分がセルの結合されており、上記のようにするとひとつ飛ばしに反映されてしまいます。 例: 【sheet1】 1 Aさん 2 Bさん 3 Cさん 4 Dさん 5 Eさん 6 Fさん 【sheet2】 1   Aさん 2 3   Cさん 4 5   Eさん 6 わかりにくいですが、このような感じです。 sheet1を無理やりセルの結合させることも考えたのですが、私以外の者も表を扱うこととなるためなるべくシンプルにしたいと思い断念しました…。 セルの結合はそのままで、Sheet1に入力した内容を他のシートに反映させる方法はありますでしょうか? 似たような質問も検索してみたのですが、関数?など複雑なものが多く、よく理解できませんでした。(平均値や標準偏差など簡単な計算はしたことがあるのですが、複雑なものは未経験です。) わがままを言って申し訳ございません。 勉強不足でありご迷惑おかけしますが、何卒よろしくお願いいたします。