• 締切済み

シートコピーと値の転記 シート名変更マクロを

エクセル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 のような シート名を変更できればすてきだと おもいます。 どうぞ よろしくお願いします。

  • mh1211
  • お礼率70% (309/441)

みんなの回答

  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

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/7940)
回答No.1

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 といった具合に。

関連するQ&A

  • 新しいマクロの記録でコピーしたsheet

    新しいマクロの記録でシート2のA1~C3までの値をクリアして、シート1のA1~C3までの値を貼り付ける事を記録しました。それを●の図形にマクロの登録をして、●を押すとそれが実行されるようにしました。ここまでは問題なかったのですが、次にシート2をコピーしてシート3という名前にしてシート3の●を押すとシート2にこのマクロが実行されますが、これをシート3で実行させる事はできないでしょうか?昨晩、いろいろやってみましたが、どうしてもわかりません(>_<;)・。どなたか、よろしくお願いします。

  • リンクがあるシートBのコピーをマクロで

    エクセル2010を使用しております。 シートBを営業日が終了したらコピーして別シートCに保存したいのですが リンクして数字をひっぱっているので そのリンク元(シートA)は 営業日が終了した時点で 数字をクリアして 翌営業日に使用しています。 ですので シートBをコピーしても リンク元(シートA)をクリアすると 入力されていた数字も同時に消えてしまうし また あたり前ですが、元のシートAに数字をいれると 違う数字になってしまいます。 そこで 画像としてコピーして保存するか  印刷して データを打ち直すかしか 考えが 浮かびませんが・・・ マクロを使って いい方法はないものでしょうか? シートを新規に作成→シートBの印刷エリアをコピー→シートCに形式を選択して画像として貼り付け →画像を適切な大きさに縮小する。 上の一連の流れをマクロで できるのか?考えてみましたが、 できれば 画像ではなく コピーして新規シートに作成したいんですが 毎日の作業なので頭がいたいです。もっと絶対いい方法があるとおもいますが。 詳しい方、お願いします。

  • Excelマクロで、多数のシートの値だけを元のファイルに上書きするようなマクロを教えていただきたいのですが。

    あまり詳しくないのですが、Excelマクロで、1つのファイルにある40くらいのシートの計算式等をすべて排除した値&図だけを元のファイルに上書きするようなマクロを教えていただきたいのですが。 マクロを使わないでの方法は、 (1)、シート選択 (2)、CTRL+A(すべて選択) (3)、CTRL+C(コピー) (4)、形式を選択して貼り付け (5)、値(選択値) これをそのファイルが持っているシート分の繰り返しです。 宜しくお願いします。  

  • 特定列の転記とシート作成とシート名変更。

    A1からBU160までの表があります(1行目はタイトル行 表は可変です) この表の特定列(例えばBU列)の文字が入っているところまで選択し(タイトル行を除き)コピーするにはどうすればよいですか? また、貼付け先の転記用ブックにおいて、もともとあるシートをコピーし、新たにシートを作りたいのですが、できたシート名に日付をいれるには、どのようなマクロを組めばよいですか?

  • エクセル マクロでシート名変更

    Excelで、作成してあるフォーマットに新しく数値をコピーして完成した表を別のブックに移動して保存しようと考えています。その際、シートのA1セルの値を自動的にワークシート名に持ってきたいのですが、やり方が分からず困っています。 シート名のところ以外は、なんとなくマクロの記録を使ってできそうなのですが、A1セルの値を自動的にシート名にすることができずに引っかかっています。 いい方法があれば教えてください。 よろしくお願いいたします。

  • エクセルマクロでファイル名やシート名変更できない

    エクセルは初心者なのでマクロを自動記録して作成しています。 少しづつ動作を小分けにして記録して、まとめてボタンで連続実行させるようにしました。 (1)作成途中で失敗したら最初からの作業になると思い、 ある程度進んだら何度かファイルのコピーを作成して進めていました。 ある程度完成した時点でファイル名が「○○○4~コピー~」の様な名前だったので、正式に名前を決めて変更したらマクロの実行が出来なくなりました。(元の名前に戻すと実行可能) (2)またシートも複数のシートに跨って参照するようなマクロです。 シート名を分かりやすい名前に変更したらこの場合もマクロ実行できなくなりました。 (3)コピーしたファイルもマクロ実行できないものがあります。 コピーしたファイルはマクロ実行できないのでしょうか? (4)ファイル作成途中で何かの変更が生じて列や行の挿入を行った場合、 特定のセルを参照して計算するマクロは実行できなくなるのでしょうか? その場合、簡単に修正する方法はありますか? 初心者にも分かるような回答をよろしくお願いいたします。

  • 「マクロの記録」でシート名を変更する方法

    エクセル2007を使っています。マクロの記録を使って、シート名の変更を行いたいのですが良い方法あるでしょうか。 Sheet1のある表を新しいシート(一回目はSheet2になりますが)に貼り付け、その新しいシートの「A2をコピーしてシート名に貼り付け」という事が出来ればよいのですが。 新しくなった名のシートは切っとって違うところで使います。毎回新しいシートが追加されることになりますし、コピーしたいA2も毎回異なりますので、【Sheets("Sheet2").Name =○○ 】では次回は新しいシートはSheet3になってしまうので、具合が悪いのです困っています…。 よろしくお願いいたします。

  • 照合した結果によって決めた値を転記するマクロ

    シート1には A~F列まで値があり、行数は都度相違し約15,000行くらい。 データは2行目から開始です。 シート2には A~AE列まで値があり、行数は都度相違し約5,000~25,000行 あり同じくデータは2行目からです。 シート1の行ごとに A列,B列,C列の順で連結した値と シート2の行ごとに F列,G列,B列の順で連結した値を 照合させます。 その値が (1)シート1にもシート2にもある場合は   シート2のAF列に1と転記 (2)シート1には無いがシート2にはある場合は   シート2のAF列に2と転記 (3)シート1には有るがシート2には無い場合は   シート2のAF列に3と記入 シート2のデータのある行まで 作業を繰り返すマクロの記述を教えてください。 VLOOKUPを使用したマクロを作成しましたが 判定1,2,3の転記がうまく出来ないのと VLOOKUPが重すぎて処理が遅すぎるので 速く処理が出来るとうれしいです。 例 シート1 A2=XXXX B2=1234 C2=5678 シ-ト2 B2=1234 F2=XXXX G2=5678 シート1の値=XXXX12345678 シート2の値=XXXX12345678 照合する ↓(一致なので) シート2のセルAF2に1と転記

  • エクセル 複数シートのデータを1シートにまとめるマクロ

    エクセルの複数シートにデータがあります。同じ条件の人のデータだけをひとつのシートにまとめたいのですが、マクロを教えていただけますでしょうか。それとも、マクロ以外に良い方法がありますか? エクセル初心者なので、あたりまえのことも知らないかもしれません。。。  【データ】 ●シート1からシート20まで、同じ配列でデータがあります。 ●1行目は見出しです。2行目から1人づつのデータです。(多くても65行までと思っています。) ●A列に到達度、B列に出欠をいれました。 ●C列からM列が氏名、課題、その他のデータです。 ●リストはシート21にあります。  【こんな作業でしょうか?】 ●シート1から20で A列が「C」または「D」ならば その行のA列からM列をコピーして シート21のA列からM列に形式を値にして張り付ける ●シート1から20で B列が「欠」ならば その行のA列からM列をコピーしてシート21のA列からM列に形式を値にして張り付ける (っというのが私の乏しい知識で考えた方法なのですが、これでは不具合がでますか? もちろん、この方法じゃなくもっといいのがあれば、それをやってみたいです。)

  • シートをコピー、シート名を変更

    Windows8でExcel2000を使っています。 こういうマクロはどう書けばいいんでしょうか? 同一ファイル内で、シートを複数枚コピー。 複数選択したセルに入力された文字列を、上記でコピーされたシート名に反映したい。 「原本」というシート名のシートがあり、それを元に一年分の表を作りたいのですが 今は手で11枚コピーを作った後1枚ずつ名前変更でやっています。 シート名にしたい文字列は現在なら「2015年01月」~「2015年12月」です。 セルに「2015年01月」~「2015年12月」を入力、選択した後マクロ実行で シート名変更に反映できればありがたいです。

専門家に質問してみよう