- 締切済み
シートコピーと値の転記 シート名変更マクロを
エクセル2010で マクロのご教授をお願いいたします。 BOOK1の Sheet1 A1~A10に 数値1000が入力されているとして Sheet1のシートのコピーを作成 Sheet1にもどり A1~A3の値だけコピーして 作業列C1に 値を貼り付け A1~A10 をクリアーにしたのちに ※↓が うまくいきません。 A1の値→ A8 A2の値→ A9 A3の値→ A10 に入力 させるマクロは どうなるでしょうか? マクロの記録で いろいろと やってみましたが どうも ※の部分が うまくいきません どう考えてもエクセルに対しての 理解不足だと思われますが、ご教授のほどお願いします。 おこなった自動マクロの記録は↓です。 マクロの記録開始する 名前 シートコピー Sheet1を右クリックして移動またコピー コピーを作成にチェックをいれ OK コピーシートが作成される。 Sheet1をクリックしなおして A1からA3をコピー 作業列として C1に 形式を選択して貼り付け 値 A1~A10を delete でクリア C1~C3を選択 コピー A8に 形式を選択して貼り付け 値 マクロの記録終了。 あと Sheet1をコピーするさいに シート名を前日の日付に自動的に変更できればと いいなと 考えておりますが できるのでしょうか? 例えば、本日でいえば シート名→ 0112 のような シート名を変更できればすてきだと おもいます。 どうぞ よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mar00
- ベストアンサー率36% (158/430)
Sub Macro1() Set WS01 = Sheets("Sheet1") 'ここを変更 On Error GoTo LINE1 Sheets(Format(Date - 1, "mmdd")).Select X = MsgBox(Format(Date - 1, "mmdd") & "すでに存在します。" & vbNewLine _ & "処理を続けますか?", vbYesNo) If X = vbYes Then WS01.Cells.Copy Cells.Select ActiveSheet.Paste Application.CutCopyMode = False GoTo LINE2 Else Exit Sub End If LINE1: WS01.Copy After:=WS01 ActiveSheet.Name = Format(Date - 1, "mmdd") LINE2: WS01.Select Range("A1:A3").Copy Range("C1,A8").PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Range("A1:A7").ClearContents End Sub On Error GoTo LINE1からLINE1:までは一度作成したものがある時の処理です。メッセージボックスを出すようにしていますのではいを選択すると処理を続行、いいえを選択すると処理を中断するようになっています。 一度作成したものがある時は一度そのシートをSheet1にコピーしてから修正などがある場合は修正してから実行してください。(Sheet1がすでにかわっている為) 必ず1度しか行わない場合は必要ないないので、On Error GoTo LINE1からLINE1:までとLINE2:を消してください。 入力するシート名はSheet1になっています。シート名が違う場合は、適宜変更して下さい。
- keithin
- ベストアンサー率66% (5278/7941)
sub macro1() ’シートを複製して名前を付け替える worksheets("Sheet1").copy after:=worksheets("Sheet1") on error resume next activesheet.name = format(date - 1, "mmdd") on error goto 0 ’A1:A3をA8以下に転記し,A1:A7をクリアする range("A8:A10").value = range("A1:A3").value range("A1:A7").clearcontents end sub といった具合に。