Gizport
1 回答
0
Share (facebook)
14
view
全般

【500枚】 excelで、例えば注文票のシートと注文履歴のシートが...

【500枚】 excelで、例えば注文票のシートと注文履歴のシートがあって、注文票の各項目(客先名、価格)等を入力後に所定のボタンを押すと、別シートに各項目が、 別シートに注文履歴として転記されるマクロを作りました。

しかし別シートの注文履歴は、毎回同じ行の数値を更新されてしいます。、毎回記入済みの行の下に新しく記入されるように設定したいです。

例えば、1行目に転記されたら、次にボタンを押したときに2行目、次は3行目と、順々に別シートに表記されるいった設定にしたいのです。

こちらで質問したところ、

Cells(Cells.Rows.Count, 1).End(xlUp).Offset(1).Select

という式を挿入すれば良いというところまでわかったのですが、既存の式のどの部分に挿入すれば良いのでしょうか?

既存の式は以下となります。

Sub Macro1()
'
' Macro1 Macro
'
Sheets("受注表☆").Select
ActiveWindow.SmallScroll Down:=12
Range("A54:B55").Select
Selection.Copy
Sheets("受注履歴").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("受注表☆").Select
ActiveWindow.SmallScroll Down:=-18
Range("A13:D14").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("受注履歴").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("受注表☆").Select
Range("D4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("受注履歴").Select
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("受注表☆").Select
Range("B7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("受注履歴").Select
Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("受注表☆").Select
Range("K4:M5").Select
Application.CutCopyMode = False
Selection.Copy


・・・・・中略・・・・・・・

Sheets("受注履歴").Select
Range("F3").Select
Sheets("受注表☆").Select
Range("F13:M22").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Sheets("受注履歴").Select
Range("F3").Select
ActiveCell.FormulaR1C1 = ""
Sheets("受注表☆").Select
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
End Sub
Yahoo!知恵袋 4476日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
例えば、9行目からについては、次の位置に入れます。
これがB列の操作なら、Cells(Cells.Rows.Count, 2)、C列なら3・・・・となります。

With Sheets("受注履歴")
.Select
.Cells(Cells.Rows.Count, 1).End(xlUp).Offset(1).Select
End With
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

簡略化
With Sheets("受注履歴")
.Select
.Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
End With
Selection.PasteSpecial Paste:=xlPasteValues

が、このマクロ自体はマクロの記録で延々と作成されているようなので、どこまで、うまくいくかはシートの設計がどうなっているかが、わからないと何とも言えません。
VBAに慣れてくると、受注履歴の新規セルをWith~End Withで見つけて、そこをキーにして、OFFSETで移動しながら、Sheets("受注履歴").Range(" ").Value=Sheets("受注表☆").Range("").Valueで直接書き込んでいく方法をとるかとも思います。
そのほうが高速だし、画面のちらつき防止など余計な処理も必要でないため。
※ 参考になると思われるサイト
http://officetanaka.net/excel/vba/tips/tips130.htm
Yahoo!知恵袋 4476日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
35
Views
質問者が納得Advanced OpenGLはONにしてください あと、グラフィックは処理優先にしてください ちゃんと設定してもグラフィックが描画優先なら重くなります あと、optifineの設定はきちんとしましたか? optifineは設定項目を追加するmodであり 設定次第で重くも軽くもなりますよ? そのFPSは多分妥当ですよ 止まってたり、すでに読み込んだとこならギリ50~60いくと思いますが 動いてるとFPSは30くらいが普通かもしれないです 普通に遊ぶ用に細かい設定をしてください 描画距離は実際f...
3714日前view35
全般
20
Views
質問者が納得いくつか疑問点があります。 1.シート1のどこに担当者の情報があるのでしょうか。 2.>担当者別シートは、行数が1~30行で、列数はA~N列 A~N列は3の倍数になっていません。L列かO列までのはず。 以上を考慮せず、一人の担当者だけのマクロを提示しますので、参考にして下さい。 シート1をSheet1、担当者のシートをSheet2としています。 標準モジュールに下記を。 Sub Macro() Dim i As Long, imax As Long Dim j As Integer, k As...
3714日前view20
全般
27
Views
質問者が納得月々サポートが7月利用分への適用で終了したからですよ。 F-10Dだと2500円位だったと思います。 10年超回線だと基本料が2年間無料のキャンペーンなどもあったかも知れません。(その時期はまだキャンペーン前だったかも知れませんが)
3715日前view27
全般
54
Views
質問者が納得ELECOMは 192.168.2.1 又は、 http://192.168.2.1/ ユーザー名 admin パスワード admin OK でルーター設定・管理画面に入れます。 ルータとパソコンとの接続について http://qa.elecom.co.jp/faq_detail.html?id=3118 フレッツ光等でPPPoE接続の場合、パソコンからPPPoE設定を削除してください。 Gateway SX2110-F12D/はデスクトップPCなので別途無線LAN子機やイーサーネットコンバ...
3780日前view54
全般
42
Views
質問者が納得参考に挙げられていたサイトのコードを元にして全体的に書き換えてみました。 よろしければどうぞ。 http://pastie.org/9424625 一応の動作確認は行いましたが、念のため、そちらでもお願いします。 ほぼ跡形も無いほど改造しましたが著作権は主張しません。 ご不明な点がございましたらどうぞ。
3783日前view42

取扱説明書・マニュアル

1056view
http://www.nttdocomo.co.jp/.../F-12D_J_02.pdf
116 ページ13.50 MB
もっと見る

関連製品のQ&A