vba 順次記録
下記のマクロはツール、マクロ、新しいマクロの記録で作成しました。
順序はa1に ”=RSS|'3315.T'!現在値” 最初から入力しておきます。
1回目a1に楽天のマーケットスピード (MS) より数字が入力されます
a1に入力したすうじをa5とa6にコピーします。
2回目 MS より次の入力が入ります。
a1に入力したすうじをa5にコピーします。
a5,a6 を a6,a7 にコピーします。
3回目 MS より次の入力が入ります。
a1に入力したすうじをa5にコピーします。
a5,a6,a7 を a6,a7,a8 にコピーします。
4回目 MS より次の入力が入ります。
a1に入力したすうじをa5にコピーします。
a5,a6,a7,a8 を a6,a7,a8,a9 にコピーします。
n回目 MS より次の入力が入ります。
a1に入力したすうじをa5にコピーします。
a5,a6,a7,a8,-----a? を a6,a7,a8,a9,-----a? にコピーします。
以後入力有り次第 繰り返し続けて記録したいのです。
下記のマクロはa列に記録ですがb、c、d、と4箇所形式は同じですがデータの違いのが有るのですが
a,b,c,d,列入力順序がばらばらなのです
a列のみでもお願いします。
Sub M3()
Range("A1").Select
Selection.Copy
Range("A5").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Range("A5:A6").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A5").Select
Range("A1").Select
Selection.Copy
Range("A5").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A5:A6").Select
Selection.Copy
Range("A6").Select
ActiveSheet.Paste
Range("A1").Select
Selection.Copy
Range("A5").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A5:A7").Select
Selection.Copy
Range("A6").Select
ActiveSheet.Paste
Range("A5").Select
Range("A1").Select
Selection.Copy
Range("A5").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A5:A8").Select
Selection.Copy
Range("A6").Select
ActiveSheet.Paste
Range("A5").Select
Range("A1").Select
Selection.Copy
Range("A5").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A5:A9").Select
Selection.Copy
Range("A6").Select
ActiveSheet.Paste
Range("A5").Select
Range("A1").Select
Selection.Copy
Range("A5").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A5:A10").Select
Selection.Copy
Range("A6").Select
ActiveSheet.Paste
Range("A5").Select
End Sub
お礼
遅くなり大変失礼いたしました。 ありがとうございました。
補足
imogasi様 長文の御指導ありがとうございます。 長文になりますが、御判読いただき御指導いただければ幸甚で御座います。 >売上台帳は 縦(列)に1日1行か 月/日/注文番号/商品コード/品名/数量/単価/納品金額/入金額/備 考 0/0 繰越金額 1,547 5/25 123 525 AAA 5.25 3.00 16 5/26 5-26 526 BBB 526.00 26.00 13,676 6/ 1 6-1 61 CCC 61.00 16.00 976 6/ 1 6-1-1 1231 DDD 3.00 123.13 369 6/20 入 金 15 6/25 6-25 625 EEE 625.00 65.00 40,625 6/26 6-26 626 FFF 626.00 26.00 16,276 合 計 73,485 15 >1日複数行か ● 固定していません。 1日分は行的に固まっているのか。 そういうデータの状況のことを書かないと、それらによって大幅に処理ロジックが変わる。模擬実例を挙げよ。 >読者には売上台帳が見えないことを忘れるな。 ● 解りました >A1に6、A2に25と入っているシートと売上台帳は同じシートか ● 同じシートです (ブック)シート、(行、列)、データの並び順を明確にして質問のこと。 ーー >年指定の問題は、面倒でも1セル指定するようにすべきだ。 ● 上記御指示の意味は 1.例えば A3に指定する 2.表に 年 の列を設ける 3・表に 年 の列を設け A3 で指定する >またVBA初心者なら、月末というのをやめて31日、30日、28日、29日を具体的に入れる設計の法が良いと思う。コードが増えるだけ。 ● 解りました >初心者のうちはCopyメソッドより、他セルに値代入をお勧めする。 ● 値代入の記述方法を教えてください。 日付はエクセルでは日付シリアル値という整数値であることをご存知か。大切なことです。これが判れば、日付の前後は整数の大小に帰する。 ● 忘れていました。 >参考コード Sub test01() '参考コード '範囲日付の抜き出し '日付条件は同一シート(A1,A2とする)。2008年仮定。 ●エラーメッセージ(変数が定義されていません)が出ましたので下記5行追加してみました。 ' Dim e As Integer Dim s As Integer Dim d As Integer Dim i As Integer Dim hi As Integer ●ヘルプを見ましたが理解出来ず試行したのはここまでです。 e = DateSerial(2008, Range("a1"), Range("a2")) '← エラーメッセージ(オーバーフローしました。) 'MsgBox e s = DateSerial(2008, Range("a1") - 1, Range("a2")) + 1 'MsgBox s d = Range("a65536").End(xlUp).Row For i = 3 To d hi = DateSerial(2008, Cells(i, "C"), Cells(i, "D")) 'MsgBox hi If (hi >= s) And (hi <= e) Then MsgBox hi '日付条件を満たす。他シートナリに値を代入。 End If Next i End Sub 'MsgBoxのシングルコーテーションを順次はずして実行し、 '正しい結果になるかチェック・納得してみて。 End Sub MsgBoxのシングルコーテーションを順次はずして実行し、正しい結果になるかチェック・納得してみて。 ーー >他シートに代入する場合の書き方は少し経験が要る。 ●出来ればSheet2に作成したいと思っています(売上台帳がSheet1) >まずそういうことを勉強して、判らない場合は質問して、課題解決に進めるべきだ。 ●解りました。 >どういう要素技術(=コード記述)がいるかが整理できないなら、こんな仕事に関連したことに、今は着手すべきでない。 ●リタイアした68歳の勉強中の初心者です。