- 締切済み
Excel 違うBookのシートをコピーする
Excelでわからないことがあり質問させていただきました。 原紙のBookに 資料のBookのシートをコピーさせたいのですが 資料Bookには シートが sheet1~sheet50まであり 原紙のBookにマクロのボタンやフォームを作成し 毎回資料のBookの違うシート名を選択しコピーをさせることは可能なのでしょうか? たとえば 原紙のシートに入力フォームを作り sheet名を入力 → 「コピー」のボタンを押すとコピーができる。 といった感じに・・・ フォームでなくてもリストなんかでもいいのですが・・・
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- rinkun
- ベストアンサー率44% (706/1571)
ANo.1です。 ANo.1の例ではシート名は文字列"sheet1"で指定していますよね。 この部分は文字列変数でもセル参照でもかまわないわけです。 例えば Cells(1,1).Text とすれば原紙シートのA1セルに書き込まれた文字列を参照します。 もちろんフォームで入力した文字列を文字列変数に取得して使っても良いです。
- rinkun
- ベストアンサー率44% (706/1571)
以下の何れかでOK。 コピー元ワークシート.Copy Before:=コピー先ブックのワークシート コピー元ワークシート.Copy After:=コピー先ブックのワークシート 前者だとコピー先ワークブックの前の位置に、後者だと後の位置にコピーが挿入されます。 # マイクロソフトのマニュアルページ http://msdn.microsoft.com/ja-jp/library/office/ff837784.aspx マクロで書くときは、ワークシートを指定するときにブックを明示して指定すればよろしい。 資料ブック("資料.xls")を開いていて、原紙ブックのシート上からマクロを動かして 資料ブックの"sheet1"を現在のシートの後にコピーするなら Worksbooks("資料.xls").Worksheets("sheet1").Copy After:=ActiveSheet といった感じ。
お礼
ありがとうございます。 この回答だと違うシートをコピーしたい場合、シート名を書き換えないといけないですよね? そうではなく今回は使う人が何度教えてもシートのコピーが出来ないので、シートだけ選択できればどのシートでもコピーできるようにしたいのです
お礼
セルに入れた文字列を参照させればいいんですね。 頑張ってやってみます! 丁寧な説明ありがとうございました。