• ベストアンサー

エクセルでデータを蓄積させるには?

エクセルで、入力用雛形シートと、蓄積用リストシートを作ります。入力雛形にデータを入力すると、リスト画面に蓄積されるにはどうすればいいでしょうか?保存ボタンを押すと入力したデータがリストに順々に保存されていくという形にしたいのですが・・・入力雛形はリスト画面に蓄積された(保存ボタンを押した)後、クリアさせるようにもしたいです。マクロは初心者です。教えて下さい。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.6

Dim WS1 As Worksheet '変数の宣言:シート1 Dim WS2 As Worksheet '変数の宣言:シート2 Dim r1 As Range, r2 As Range 'セル(Range)の宣言 シート1&2用 Set WS1 = Worksheets("Sheet1") '変数WS1にシート1をセット Set WS2 = Worksheets("Sheet2") '変数WS2にシート2をセット Set r1 = WS1.Range("B1:B3") '変数r1にシート1のセルB1:B3をセット Set r2 = WS2.Range("B" & Rows.Count).End(xlUp).Offset(1) '変数r2にシート2のB列最終行の1つ下をセット r2.Resize(, 3).Value = Application.Transpose(r1) '変数r2でセットされたセルから、右に2個増やした 'セル3個分に、r1でセットされた3個のセルを '行列入替え(縦並びを横並びに)て代入する r2.Offset(, -1).Value = r2.Row - 1 'シート2のB列(r2)の1つ左(A列)に '行番号から1引いた数を代入する。 '(項目行の分だけ1引いて調整してる) >項目を増やしたのでマクロも書き換えなくてはいけないですよね? どのように増やすのかも提示された方が、回答がスムーズにいくと思います。 取り敢えず、シート1の項目が3つでない場合なら、 Set r1 = WS1.Range("B1:B3") B1:B3を実際の範囲に合わせる。(例・B1:B6とか) r2.Resize(, 3).Value = Application.Transpose(r1) 3を実際のセル個数にあわせる。(例・B1:B6なら6とか)

noa8998
質問者

お礼

とても詳しい説明ありがとうございました! 本当に助かりました(涙) またよろしくお願いします。

その他の回答 (5)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.5

>そのマクロが分からなくて・・・ 取り敢えず、蓄積用シートの1行目は項目が入っているとして、   A  B  C     D 1 NO  区分 機能別分類  品名 2 1   国語  教材   漢字スキル 3 2行目からデータを追加していく。 とおし番号は1から。 Dim WS1 As Worksheet Dim WS2 As Worksheet Dim r1 As Range, r2 As Range Set WS1 = Worksheets("Sheet1") Set WS2 = Worksheets("Sheet2") Set r1 = WS1.Range("B1:B3") Set r2 = WS2.Range("B" & Rows.Count).End(xlUp).Offset(1) r2.Resize(, 3).Value = Application.Transpose(r1) r2.Offset(, -1).Value = r2.Row - 1 ボタンのマクロの中に上のコードを入れてみて下さい。 Sheet1 と Sheet2 は実際の名前に変更して下さい。

noa8998
質問者

補足

すみませんが、このマクロの意味を教えて下さい。 項目を増やしたのでマクロも書き換えなくてはいけないですよね?

noname#42041
noname#42041
回答No.4

単純な方法としてデータフォーム機能を使う手がありますがそれでは物足りませんか? 参考URLご覧ください。

参考URL:
http://dreamy.boy.jp/kihon9.htm
noa8998
質問者

補足

フォームのやり方も知らなかったので参考になりました。ありがとうございます。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

入力用雛形シートから蓄積用リストシートへ転記したいセル番地が どこにあるのか? 【入力用雛形シート】   A   B    C 1 日付 会社名 担当者 2 9/5  YYY   KKK 3 4 天気 湿度 5 雨  00% とあった場合、転記したいのは セルA2、B2、C2、A5、B5 【蓄積用シート】   A   B   C    D   E 1 日付 会社名 担当者 天気  湿度 2 9/5  YYY  KKK   雨   00% 3 9/6  XXX  LLL   雨?  90% 転記したいセル位置と転記する位置がこのようにわかれば、 回答がつきますよ。

noa8998
質問者

補足

備品を管理する台帳を作るので・・・ 【入力用雛形シート】  A      B     C 1区分     国語 2機能別分類  教材 3品名     漢字スキル セルBにデータを入力していきます。セルAが入力する項目名です。 転記したいのはB1、B2,B3です。 雛形の横に保存ボタンを作る。保存ボタンを押すと蓄積用シートへデータが転記される。(データを転記させた後、雛形へ入力したデータは残しておくこともできますか?クリアせずに。) 【蓄積用シート】  A  B   C   D 11  国語  教材  漢字スキル 22   33   セルAには通し番号を。保存ボタンを押すとB1、C2、D3に転記される。 保存ボタンにはマクロを記録するのですよね? そのマクロが分からなくて・・・

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

どのセルにデータがあり、どこに転記等を行ないたいのか、 提示されては? シート状態を見られない分、情報は多く必要です。

noa8998
質問者

補足

すみません・・・どのように提示すればよいのでしょうか?

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>入力用雛形シートと、蓄積用リストシートを作ります。 出来ているのですか? 出来ているのならシートレイアウトを提示された方がいいです。 >保存ボタンを押すと ボタンは作れますか?

noa8998
質問者

補足

シート、ボタンは作っています。ボタンはフォームより作りました。そのボタンにどのようなマクロを入れればいいのでしょうか?

関連するQ&A

専門家に質問してみよう