• ベストアンサー

(エクセル)別のブックにシートをコピーすると

初めて質問します。 EXCEL2000で、VBAとテンプレートが同じブックに保管されています。(test1.xls) test1.xlsのユーザーフォームでデータを入力して、コマンドボタンを押すと、テンプレートが別ブックにコピーされ、セルが埋められるようにしたいのですが、テンプレートにシート間参照(temp!A1)を使っているので、コピー元のブックを参照するように書き換えられてしまいます。([test1.xls]temp!A1) がんばって検索したのですが、回避策を見つけることができませんでした。 よろしくお願いします。

  • sonon
  • お礼率66% (4/6)

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

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

>その際シート間の参照を崩したくないのですが… コピー対象のシート(参照があるシート)を作業グループにして、一括コピーすれば大丈夫かと思います。 Sheets(Array("Sheet1", "Sheet2")).Copy シートを1枚づつコピーした場合は、元のブックに対して参照してしまいますが、シートを作業グループにしてコピーすると、シート間のリンク情報としてそのままコピーされます。

sonon
質問者

お礼

遅くなりました。 スマートな方法で私好みです(笑) ぜひ試してみたいと思います。 ありがとうございました。

その他の回答 (3)

  • arare2005
  • ベストアンサー率31% (63/199)
回答No.3

確かにご質問者さまの様にコピーされてしまいますよネ これはこの機能を作った方の仕様だと思います(^^; シート参照をコピーした場合、外部のブックを絶対参照した方が使い勝手が良いと思われたのだと思います。 ちなみに、同一シート内の参照や外部ブックへの参照はコピーしても、その参照の数式は変わりませんから。。。 私は以下の方法で回避しますが、他にオプションなどがあるのかも。。。 (1)シート参照のある場合、別名で保存する (2)参照となるブック名(.xls)は判っているので、自分のブック名に置換する (3)シート参照するシートがデータとして1ヶ所のシートであれば、そのシートは別のブック(book1)とし、シート参照する方も別のブック(book2)とすれば、book2→book1!shhet1...となるので結果としてそのままの数式となる (4)(3)を更に分割して1ブック1シートで全て再度作成する ※VBAで組まれていらっしゃるので、VBAのコードは省略いたしますが、もし判らなければ同様の作業を「マクロの記録」で行えば、VBAのコードは出てきますので参考にされたら良いと思います。 実際の動作は、ご質問者さまと私も同意見(仕様書みたいな同一の書式の物をコピーする際など)ですが、MSの方とは認識が違う様です。 もしかすると2003等では、違うかもしれませんが... とりあえず私も2000で手動コピーですが確認しましたので回避するには上記のいずれかを選んで組まれてはいかがでしょうか(^^) もし、記述で意味不明な場合は、再度、補足など入れていただけますか。 m(_ _)m

sonon
質問者

お礼

遅くなって申し訳ありません。 仕様上、オリジナルのブックを開くと自動でマクロが立ち上がるため、目的のシートだけをコピーする必要があったんです。 とりあえず全部の方法を試したいと思います。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

#1です。もうひとつ確認。 雛形シートをコピーして、他ブック(test2.xlsと仮にするとして)に新シートを作成したとき、 雛形シートの、あるセルにある=[test1.xls]temp!A1が、コピー先でも =[test1.xls]temp!A1となるようですが、これが困るのですか。 どうなればよいのですか。 なお雛形シートのシート名はtemp1ですか。

sonon
質問者

補足

雛形シートは複数あり、tempもその一つ(=同時にコピーされる)です。 フォームのデータはいったんtempシートに入力され、ほかのシートから参照されます。 実際は雛形シート内では =temp!A1 のように参照しています。が、新ブックにコピーされると同時に =[test1.xls]temp!A1 と書き換えられます。これを同じブック内での参照のまま保持する方法が解らずに困っています。要するにコピー後も =temp!A1 のままでいてほしいのです。 たびたび申し訳ありませんが、よろしくお願い致します。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>VBAとテンプレートが同じブックに保管されています。(test1.xls) エクセルのテンプレート・ファイルの拡張子は.xlt と思いますが、 「同じブックに保管されています」とはどういうことでしょうか。 「同じフォルダに」のことでしょうか。

sonon
質問者

補足

ありがとうございます。 「テンプレート」とはエクセルのテンプレートファイルではなく、自分で作った雛形という意味です。言葉が足りなくて申し訳ありません。 一つのブックにVBAと複数のシートがあり、シートだけを新しいブックにコピーしたいのです。その際シート間の参照を崩したくないのですが… 引き続きよろしくお願い致します。

関連するQ&A

  • フォームのシート間参照

    以前シート参照のブック間コピーについて質問した者です。 たびたびお世話になります。 今、ブック(test1.xls)に3枚のシートとVBAがあります。3枚のシートは生成される書類の雛形になっています。VBAはユーザフォームを表示させるためのもので、ユーザによる入力が終わり、コマンドボタンが押されるとtest1の全てのシートを新しいブックにコピーし、入力されたデータに基づいてセルが埋められる仕組みです。 シート間の参照が[test1.xls]temp!A1となってしまう(tempは3枚のシートのうちの1枚)問題は、皆さんのアドバイスで回避することができました。しかし。 3枚のシート内でフォーム(チェックボックスやオプションボタンなど)を使用しているのですが、それらのプロパティ、「リンクするセル」にも同じ現象が起きてしまいます。 「リンクするセル」も新しいブックのシートを参照するようにしたいのですが、VBAで1つずつ設定していくしかないでしょうか…?フォームを大量に利用しているので、手作業は避けたいです。 皆様のアドバイスをよろしくお願いいたします。

  • Excel VBA別ブックのシートをコピーするには

    Excel2010のVBAで別ブックのシートをコピーしてくる方法 Excelファイル(C:\test\BOOK2.xls)のシート名が TESTというシートを自分のExcelファイル(C:\doc\BOOK1.xls)に コピーするにはどのように記述すればよいのでしょうか。 ・コピー先:自分のExcelファイル(C:\doc\BOOK1.xls)  VBAのコードがあるファイルです ・コピー元:C:\test\BOOK2.xlsのTESTシート  なお、TESTシートを持つ同じ名前(BOOK2.xls)のファイルが  別フォルダにもあります   Workbooks( )の引数にファイル名(BOOK2.xls)は指定できるのですが、 フルパス名(C:\test\BOOK2.xls)で指定できないので困っています。

  • bookからbookへの数式のコピーについて教えてください

    bookからbookへの数式のコピーについて ??BookのSheet1のセルにSheet2を参照にした数式が入っています =2+Sheet2!$A8 これを!!BookのSheet1のセルにコピーすると =2+[Book1.xls]Sheet2!$A8 こうなりました コピーしたセルは11,475セルあります [Book1.xls]をすべて消したいのですが、簡単な方法はありますか?

  • Excel VBAでシートを別なBookにするには?

    Book ABC.xls の Sheet("TEST") を書式と値(数式でなく)だけコピーし別なBookとして保存したいのです。 その際、Sheets("LOGIC").Range("A1")を、マクロで1回目は2、2回目は3とし、12回目の13まで行います。Sheets("TEST")はSheets("LOGIC").Range("A1")を参照しているので、その結果として、Sheets("TEST")の値は当然12通りに変化します。 新たに自動作成される別なBookは Sheet1~Sheet12の12枚のシートをもち、それぞれがABC.xls の Sheets("TEST") の12通りのコピーとなるようにしたいのです。 このようなマクロはどう作ればいいのでしょうか? お手上げです。何卒よろしくお願いします。

  • エクセルでシートを「移動またはコピー」した場合。

    説明が難しいので記号で説明させていただきます。 ブックA・ブックBを開いて、ブックAのシート(1)をブックBに「移動またはコピー」でコピーします。ブックBに新たにできたシート(1)について、もとのブックAのセルがなんらかの別セルを参照していた場合、そのコピーされたブックBのセルには[A.xls]の文字が入ってしまいます。ブックBのみで使用する場合、もちろん[A.xls]の文字は邪魔になるので、現在はいちいちその文字を削除して使用しています。なにかいい方法が有りますか?

  • Excelでブックをまたいでシートをコピーした時に、元のブックを参照させない方法

    Excelでブックをまたいでシートをコピーした時に、 元のブックを参照しないようにしたいです。 BOOK_AというブックのシートにBOOK_Aのブック内のセルを参照する式が ある場合、そのシートをBOOK_Bというブックにコピーすると、 式の中の参照先のセルを示す部分に自動的に[BOOK_A]が追加されて、 BOOK_Aを参照してしまいます。 ここではBOOK_B内のシートを参照してほしいので、そのままの式で コピーしたいのですが、可能でしょうか? よろしくお願いいたします。

  • Excelマクロ(VBA)のブックとシートのコピーについて

    初めまして、宜しければVBAのブックやシートのコピー(操作)についてご教授お願いいたします。 Windows XP x64 OFFICE2003 を使用しております。 D:\Book1.elxのsheet1のシートをD:\test\Book2.elxのsheet1のシートに コピーする方法が恥ずかしながら理解できておりません。 以下が行いたい事です。 Sub ボタン1_Click() 'text1ブックを開く 'Workbooks.Open "D:\micro\test1.xls" 'ブック間のシートをコピー Workbooks("test2.xls").Worksheets("シート2").Copy _ After:=Workbooks("test1.xls").Worksheets("Sheet2") End Sub VBのファイル操作とは違い、どのように行えば良いのか検索しても同じような部分サンプルのようなものしか無く、理解できておりません。 参考でも結構ですのでご教授いただけませんでしょうか? よろしくお願いいたします。

  • Excel 同ブックの他シートを参照するセルを、他ブックのセルにコピー

    こんにちは。Excelの使い方について質問させていただきます。 よろしくお願いします。 Excel2003を使っています。 シート数、シート名がまったく同じブックが2つあります。 AブックのAシートのA1セルを参照しているセルである AブックのBシートのA1セルをコピーします。 BブックのBシートのA1セルにペーストします。 BブックのAシートのA1セルを参照して欲しいのですが、 別ブックであるAブックのAシートのA1セルを参照するように 自動的に変換されてしまいます。 シンプルにそのままコピーすることは不可能でしょうか。 セルのコピーでは無く、中の文字列を選択してコピーしても、 何が起こっているのかよくわかりませんが上手くいきません。 Excel初心者です。マクロはまったく使えません。 親切な方、どうぞよろしくお願いします。

  • エクセルVBAでブック間のコピーをしたい。

    エクセルVBAでブック間のコピーをしたい。 エクセルのVBA初心者です。 複数のブックが開いている時(ブックA,B,C...)に、今選択しているブックAのあるセルを、直前に選んでいたブックBやC(そのつど変わります)にコピーする方法は有りますでしょうか? どなたか教えて下さい。

  • EXCELで別ブックのセルを参照 シートを替える

    EXCEL初心者です。 毎日四苦八苦しているのですが、行き詰ってしまったのでご教授ください。 使用しているブックをA.xlsとして、 別ブックB.xlsのセル参照を、 ='Z:\[B.xls]Sheet1'!$B$1 のようにしています。 この Sheet1 の部分のシート名をA.xlsの、例えばA1に入力することで、 毎回シート名を変えられるようにしたいのですが、 ='[B.xls]( ココ )'!$B$1  ココの部分をどのようにしてよいかがわかりません。 A.xlsのパス名から書けばよいのかなと思ったのですが、 どうもうまくいきません。 何分必要にせまられてEXCEL勉強し始めたばかりです。 初歩的な質問ですが、すみません、よろしくおねがいします。

専門家に質問してみよう