• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:リンクがあるシートBのコピーをマクロで)

エクセル2010でリンクがあるシートBをコピーする方法

このQ&Aのポイント
  • エクセル2010でリンクがあるシートBをコピーして別シートCに保存する方法を教えてください。リンク元であるシートAの数字が消えないようにしたいです。
  • 営業日が終了した時点でシートBをコピーして別シートCに保存する方法を教えてください。リンク元であるシートAの数字が消えないようにしたいです。
  • エクセル2010でリンクがあるシートBをコピーして保存する方法について教えてください。リンク元のシートAの数字も別シートCに保存したいです。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

いや,こっちにしましょう。 sub macro3()  worksheets("集計表").copy after:=worksheets("集計表")  activesheet.usedrange.value = activesheet.usedrange.value  on error resume next  activesheet.name = format(date - 1, "yyyymmdd") end sub

mh9546
質問者

補足

keithinさん たびたびの回答ありがとうございます。 自宅に帰り、コード試さしていただきます。 もうしわけありませんでした。

その他の回答 (4)

回答No.5

まず、マクロに慣れることからされたらいかがでしょうか。 そうすれば質問も具体的に出来ると考えます。 EXCELでは「マクロの記録」という機能(マウスで行った操作が記録されます)があります。 (0)マクロ記録をこれを開始します(小さな記録終了ボタンだけになって終わるのを待っています)。 (1)オリジナルシートを新しいシートをにピーする。  シートタブを右クリックしてシートのコピーをさせることになるのでしょう。 (2)オリジナルシートを選択して、コピーします。 (3)新しく作成したシートに形式を選択して貼り付けを選び、「値」だけを貼り付けます。 (4)マクロ記録を終了させます。 出来上がったマクロは固定的なものですが使えると思います。 後はマクロをダイレクトに呼び出すか、ボタンコントロールを作り、マクロを対応させるなどすれば良いのではないでしょうか。 ※ボタンの作り方にはたしか2通りあるので正しい方を使ってください。ボタンの右クリックでマクロの登録?が出るのが正しい方です。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

なぜ同じ事を二回もご説明しなきゃならないのでしょうか。 アナタがやりたかったこと: >集計表シートをコピーしてシート名は、前日の日付 01/06/12 >などと 日々蓄積コピーできればいいと考えております。 >考えております。 回答済み内容: 集計表に一日分溜まったら,別のシート2に転記したい 次の日に集計表にまた一日溜まったら違うシート3に転記して,毎日の集計表シートを蓄積したい sub macro2()  worksheets("集計表").usedrange.copy  worksheets.add after:=worksheets("集計表")  activecell.pastespecial xlpastevalues  acftivesheet.name = format(date -1, "yyyymmdd") end sub

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

ご相談では,毎日のデータを「どこに(どんな具合に)貼り付けたい」のか,一番肝心な事が書かれていません。 二番目に大事な,「どこのセルからコピーしたい」のかも説明が抜けてます。 具体的なマクロの作成に必要になる,それぞれのシートの名称も不明なままです。 アナタがやりたかったのはこういうことですか?その1: シート1の例えばA1:J20が元の範囲だとして これを丸ごとシート2にまず最初の20行分を貼り付けたら,明日はその下に20行下げたところに貼って,蓄積していきたい 具体的な手順: ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub macro1() worksheets("Sheet2").cells.specialcells(xlcelltypelastcell).offset(1).end(xltoleft).range("A1:J20").value = worksheets("Sheet1").range("A1:J20").value end sub ファイルメニューから終了してエクセルに戻る ALT+F8を押して(あるいはオートシェイプなどでボタン絵柄を配置して右クリックしてマクロの登録を行い)マクロを実行する #実際には 具体的に蓄積したいセルを特定して,その値だけを転記して蓄積していきます アナタがやりたかったのはこういう事ですか?その2: シート1に一日記入したら,別のシート2に転記したい 次の日にシート1にまた一日記入したら違うシート3に転記して,毎日の日報シートを蓄積したい sub macro2() worksheets("Sheet1").usedrange.copy worksheets.add after:=worksheets("Sheet1") activecell.pastespecial xlpastevalues end sub

mh9546
質問者

補足

keithinさん 説明不足ですみません。 集計表 というのが sheets名で A1:H37 が 元の範囲となります。 こちらが 日報 という 日々入力しているsheetsから いくつかの数字を リンクして 表示しております。 希望するのは 日々の日報シートを蓄積したいという方であります。 毎日 朝9時に 日報を閉めクリアーにしております。 おのずと 日報をクリアーすると集計表のリンクしている数字は消えますので クリアする前に 集計表は印刷するように現在はしております。 そのあとで 集計表のひな形に日付と シート名を変えて 中の数字を入れなおしております。 ですので大変作業効率がわるいので改善したく質問させていただきました。 集計表シートをコピーしてシート名は、前日の日付 01/06/12 などと 日々蓄積コピーできればいいと考えております。 考えております。 可能でしょうか?何度も大変もうしわけありませんが、できればアドバイスお願いします。

回答No.1

こんな感じでどうでしょうか? 試しにB2~G24をコピーするようにしてみました。 画像ではなく、セルの値と書式を貼付けるので、元の数値が変化してもコピー先は変化しません。 Sub test() 日付 = Format(Now(), "yymmdd") Range("B2:G24").Copy Worksheets.Add ActiveSheet.Name = 日付 With Range("B2:G24") .PasteSpecial Paste:=xlPasteFormats .PasteSpecial Paste:=xlPasteValues End With End Sub

mh9546
質問者

補足

BATIBACHIさん回答ありがとうございます。 テストコードはこれから やらさせていただきますが、説明不足がいなめないので 補足させていただきます。 集計表 というのが sheets名で A1:H37 が 元の範囲となります。 こちらが 日報 という 日々入力しているsheetsから いくつかの数字を リンクして 表示しております。 毎日 朝9時に 日報を閉めクリアーにしております。 おのずと 日報をクリアーすると集計表のリンクしている数字は消えますので クリアする前に 集計表は印刷するように現在はしております。 そのあとで 集計表のひな形に日付と シート名を変えて 中の数字を入れなおしております。 ですので大変作業効率がわるいので改善したく質問させていただきました。 集計表シートをコピーしてシート名は、前日の日付 01/06/12 などと 日々蓄積コピーできればいいと考えております。 考えております。 時間があれば アドバイスいただければと思います。