プロが教えるわが家の防犯対策術!

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

A 回答 (6件)

>入力用雛形シートと、蓄積用リストシートを作ります。


出来ているのですか?
出来ているのならシートレイアウトを提示された方がいいです。

>保存ボタンを押すと
ボタンは作れますか?

この回答への補足

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

補足日時:2007/09/05 12:53
    • good
    • 0

どのセルにデータがあり、どこに転記等を行ないたいのか、


提示されては?

シート状態を見られない分、情報は多く必要です。

この回答への補足

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

補足日時:2007/09/05 13:59
    • good
    • 0

入力用雛形シートから蓄積用リストシートへ転記したいセル番地が


どこにあるのか?

【入力用雛形シート】
  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%

転記したいセル位置と転記する位置がこのようにわかれば、
回答がつきますよ。

この回答への補足

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

【蓄積用シート】
 A  B   C   D
11  国語  教材  漢字スキル
22  
33  
セルAには通し番号を。保存ボタンを押すとB1、C2、D3に転記される。
保存ボタンにはマクロを記録するのですよね?
そのマクロが分からなくて・・・

補足日時:2007/09/05 19:27
    • good
    • 1

単純な方法としてデータフォーム機能を使う手がありますがそれでは物足りませんか?


参考URLご覧ください。

参考URL:http://dreamy.boy.jp/kihon9.htm

この回答への補足

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

補足日時:2007/09/13 18:13
    • good
    • 0

>そのマクロが分からなくて・・・


取り敢えず、蓄積用シートの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 は実際の名前に変更して下さい。

この回答への補足

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

補足日時:2007/09/13 09:44
    • good
    • 1

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とか)
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/09/13 18:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています