質問

エクセルVBAで、特定のシートからボタンで別シートへ指定行より下へ順番に転記し、蓄積していく方法を教えてください。

☆特定シート(日報報告)
----------------------------------
  日付 銘柄  合計
1  1/1 りんご  5
2  1/1 みかん  8
-----------------------------------
※日報報告は毎日入力し報告すれば削除します

↓↓日報報告を毎日入力し月締め報告へ蓄積していきます

☆転記シート(月締め報告)
------------------------------------
   日付 銘柄 合計
1  1/1 りんご 5
2  1/1 みかん 8
3  1/2 りんご 7 ← 同じ日報報告シートより日付順で蓄積
4  1/2 ばなな 3
5  1/3 りんご 6 ← 同じ日報報告シートより日付順で蓄積
-------------------------------------
※月締め報告は、転記した日報報告の蓄積をしていきます。


上記表で、日報報告を月締め報告へ転記することは
マクロを使用して出来たのですが、
蓄積していく方法がわかりません。

VBAも初心者です。
説明等足りない部分もあるかと思いますが、
みなさまの知恵をお借りできたらと思っております。

エクセルバージョンは2003です。

宜しくお願いいたします。

通報する

回答 (2件)

転記先(蓄積先)の最終行を作業の都度毎回捉えれば、仕舞いでは。
シートの最終行を捉えるコードが知りたい、と質問にはっきり書けないのかな。
こんなの基本のキで(VBAを使だすと、やり方(ForNextを使う)によっては、すぐ必要になること)で、
Range("A65536").End(xlUp).Row
です。
しかし難しいのは、質問の場合の特定シートと転記シートをコードで区別する書き方です。この点判っているのかな。前にシート名を限定する部分を加えてください。
Sub test01()
MsgBox Worksheets("Sheet1").Range("A65536").End(xlUp).Row
End Sub
書き込みは当然その1行下から。
ーーー
余談
ほかにシートのセルの値をエクセル作業終了、パソコ使用終了の後の、情報記憶(順送り)装置と考え、毎回での最下行を、決めたシートのセルに記憶していく手も思いつく人もありそうだ。
もっと多種で複雑化したら、テキストファイルに保存するとか、の仕組みは広くOSまで含めて使われる。レジストリとかINIファイルとかもそういう臭いがある。

> 上記表で、日報報告を月締め報告へ転記することは
> マクロを使用して出来たのですが、
> 蓄積していく方法がわかりません。

転記は転記シートの2行目に貼り付ける……と、言った感じで行を固定しているのでは無いですか?固定ではなく、空いている行を探してそこに貼り付ければ良いです。
例えばこんな式で得られる行を対象にします。

Sheets("転記シート").Range("A1").End(xlDown).Row + 1

この例では、A1から下方向に見て行き、データが存在しない最上行を返します。

この回答へのお礼

ご丁寧に親切に教えて頂き感謝いたします。
教えていただいたようにしましたら、
すぐに解決しました。
本当にありがとうございます。

このQ&Aは役に立ちましたか?1 件

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

新しく質問する

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

注目の記事

おしトピにAndroid版アプリが登場

話題のトピックにさくっとコメントできる「おしトピ」に Android版アプリが登場! もっと身近に使いやすくなりました。
今ならダウンロードで話題の掃除ロボットや全天球カメラが 当たるプレゼントキャンペーンも実施中。


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ