• ベストアンサー

VBAのワークシートの追加とコピーなんですが。

VBAのワークシートの追加とコピーなんですが。 sheet1の原紙をすべてコピーして、 新しくワークシートを追加してそのシートに貼り付けるプログラムを 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

With ActiveWorkbook   aaa = .Sheets("Sheet1").Cells(9, 4).Value 'aaaは社員   bbb = .Sheets("Sheet1").Cells(9, 5).Value 'bbbは4月   .Sheets("Sheet1").Copy After:=.Sheets(.Sheets.Count) End With ActiveSheet.Name = aaa & bbb

nego1322
質問者

お礼

watabe007さんいつも本当にありがとうございます。 本当に助かりました。 またよろしくお願いします。

その他の回答 (2)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

シート丸ごとコピーなら下記で大丈夫です。 Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)

nego1322
質問者

補足

hana-hana3さん ありがとうございます。 その追加したシートの名前を変えることが一番の悩みなんですが いい方法ありませんか? たとえば シート1のセルに   aaa = Worksheets("シート1").Cells(9, 4)    aaaは社員 bbb = Worksheets("シート1").Cells(9, 5)    bbbは4月 ccc = aaa & bbb  cccは社員4月 ワークシートの名前を社員4月にしたいのです。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

参考に With ActiveWorkbook   .Sheets("Sheet1").Copy After:=.Sheets(.Sheets.Count) End With

nego1322
質問者

補足

watabe007さん いつもありがとうございます。 その追加したシートの名前を変えることが一番の悩みなんですが いい方法ありませんか? たとえば シート1のセルに   aaa = Worksheets("シート1").Cells(9, 4)    aaaは社員 bbb = Worksheets("シート1").Cells(9, 5)    bbbは4月 ccc = aaa & bbb  cccは社員4月 ワークシートの名前を社員4月にしたいのです。

関連するQ&A

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3コピー元ワークシート3 という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3ワークシート という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • VBAワーク シート名前を付けて作成

    エクセルVBAにて 原紙とゆう名前のワークシートをコピー処理して 入力フォームにテキストボックス1と2があり コピーした原紙とゆうワークシート名から テキストボックス1と2に入力した項目が 合わさってワークシート名に変更する方法はあるのでしょうか? 例)テキストボックス1に 123   テキストボックス2に 456 コマンドボタン1をクリックすることによって ワークシート名が123456となるようにしたいのですが? 宜しくお願いいたします。

  • エクセルVBA ワークシート操作について

    エクセル2000 VBAで ワークシートが左から順番に 入力フォーム⇒加工費単価マスタ⇒出荷日報(原紙)と 3個あり4個目に出荷日報(原紙)をコピーしたワークシートを 入力して⇒テキストボックス1 (日付入力します出来れば、日付入力の指定方法⇒テキストボックスの入力制限方法も教えていただきたいです)に入力した名前を ワークシートに付けて保存したいのですが? 翌日は また左から4番目の位置にコピーされ 右に行くほど古い日付の順番にしたいです。 説明が不足していましたら連絡お願いします。

  • 【VBA】シートのコピー ~ 値に直す

    大変お世話になります。 VBAのコードについてご教示いただけませんでしょうか。 ■やりたいこと -------------------------------------------------------------------------------- (1) 【原紙】Sheetを、同ブック内の新規シートへコピー (2) 新規シートのシート名を、[セル:B5]の値に変更 (3) 新規シートにコピーされてきた数式を値に変更 ■作成してみたコード -------------------------------------------------------------------------------- Sub SheetCopy1() Worksheets("【原紙】Sheet").Copy Before:=Worksheets("【原紙】Sheet") ActiveSheet.Name = Range("B5").Value Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End Sub -------------------------------------------------------------------------------- 本日初めてVBAに触れた者が、見よう見まねで『■やりたいこと』を並べたコードのため、やはりエラーになってしまいます。 上記は、どこをどう直せばよろしいでしょうか。 もしくは、そもそも間違っておりますでしょうか。 ご教示いただきたく、何卒よろしくお願いいたします。 ◎もし可能でしたら、併せてご教示ください◎ ---------------------------------------------------------------------------- (1)の動作をさせるために、【原紙】Sheetの任意の場所に”ボタン”を設置するのですが、新規シートにもコピーされるため、そのコピー側のボタンを削除できたら…とも考えていますが、そういう動作も可能でしょうか。

  • VBAの全シートコピー

    VBAの全シートコピー シート1~4まであるとします プログラムで全シートを順番に読んでいきます。 シート1で範囲を決めてコピーします。コピーはRange(Cells(2, 1), Cells(??, 10)).Copy を使いたいです。違う方法があるなら。 そしてシート4に貼り付けます。 そして次にシート2を読む・・・同じ そしてシート3を読む・・・同じ そんなプログラムがほしいです。 分かるかた知恵を貸してください。 お願いします。

  • VBAでワークシートとグラフシートの判別

    VBAでワークシートがactiveになっている時だけ実行プログラムを書きたいのですが ワークシートとグラフシートの判別する分岐をif文で作成するには どのように書けば良いですか? 検索してみても見つかりませんでした。 どなたかよろしくお願いいたします。

  • 【VBA】シートをコピー→任意セル値をシート名に

    大変お世話になります。 【Excel VBA】は全くの初心者です。 付け焼刃な質問がよろしくないことは重々承知しております。 が、どうしても『今』必要なため、皆さまのお知恵をお借りしたく 質問させていただきます。 このような動作をさせたい場合の、具体的なコードをご教示いただけませんでしょうか。 ------------------------------  組みたいマクロ ------------------------------ (1)数式が入った【原紙】Sheetの[B2~AA40]を、    同一ブック内の新規Sheetへ形式ごとコピー。 (2)(1)の新規Sheetの名前を、同シート内[B5]の入力値に変更。  < 補 足 >  ◎(1)で新規Sheetへコピーする際、数式は不要です。  ◎(1)でコピーする新規Sheetは任意の複数枚で、   名前となる[B5]値は重複しない予定です。  ◎(1)でコピーされる位置は、【原紙】Sheetの前を想定していますが、   最後尾への追加に変更になった場合は、どこを変更したらよいかも   併せてご教示いただけますと大変ありがたいです。 質問の仕方も、このような感じで伝わるのか不安なまま記載しています。 情報として不足がありましたら、そちらもご教示いただけますと有難いです。 よろしくお願いいたします。

  • EXCEL VBAにてのワークシート作成

    エクセルのVBAにてワークシートを作成することで困っています。 自分で書き込んだのは Private Sub CommandButton1_Click() Worksheets("原紙").Copy ActiveSheet.Name = TextBox1 Worksheets.Add After:=Worksheets(2) End Sub Private Sub UserForm_Initialize() TextBox1 = Format(Date, "yy.mm.dd") End Sub 実行したいことはCommandButton1クリック時に 左から2番目にあるワークシート 原紙を テキストボックス1に入力されている(日付) 名前を付けて左から3番目に新規で作成したいのですが 思うように動かずエラーが出てしまいます。 どの様に修正すれば宜しいでしょうか? またクリック時にすでにテキストボックス1と同じ 名前のワークシートが存在した場合はそのワークシートを Activeにしたいのですがどの様に書き込めば宜しいでしょうか? 重ね重ねですが宜しくお願いいたします。

  • ワークシートをコピーしたい

    下記載のサンプルマクロは「ワークシートをコピーして、追加したワークブックにコピペする」マクロなんですが、これを「ワークシートをコピーして、追加したワークシートにコピペする」にできないでしょうか? 出来るのであれば、値と書式の他に関数もそのまま貼り付けたいので御教授お願いします。 ただマクロは削除してマクロ抜きのコピペが理想です。 宜しくお願い致します。 Sub サンプル() Dim sc As Integer sc = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 ThisWorkbook.Sheets("オリジナル").Cells.Copy 'コピー Workbooks.Add 'ブック追加 Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlValues '値貼り付け Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlFormats '書式貼り付け Sheets("Sheet1").Name = "コピー" Application.CutCopyMode = False Application.SheetsInNewWorkbook = sc ActiveWorkbook.Close ThisWorkbook.Activate End Sub

専門家に質問してみよう