| すぐマク YNxv9987 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| 名前に同じ文字を含むシートを新規ブックにコピーするには? |
|
|
|||
いろいろな方法が考えられますが、以下のサンプルで実現できると思います。
Sub 名前に同じ文字を含むシートを新規ブックにコピーする() 10 コピー元ブック名 = ThisWorkbook.Name 11 新規作成ブック名 = "定価.xls" ' 30 Set NewBook = Workbooks.Add 31 NewBook.SaveAs Filename:=新規作成ブック名 32 シート名 = ActiveSheet.Name ' 50 Workbooks(コピー元ブック名).Activate 60 For Each 各シート In Workbooks(コピー元ブック名).Sheets 61 If Left(各シート.Name, 2) = "定価" Then 62 Worksheets(各シート.Name).Copy after:=Workbooks(新規作成ブック名).Sheets(シート名) 63 シート名 = 各シート.Name 64 Workbooks(コピー元ブック名).Activate 65 End If 66 Next 70 Workbooks(新規作成ブック名).Activate End Subこのテーマは簡単そうに思えますがマクロを組むには、意外とさまざまなテクニックが必要になります。 初心者さんということですので、少し解説しておきます。 10行目 コピー元ブックの名前を取得する 11行目 新規作成するブック名を指定する (ユーザーに入力してもらうなら こちら) 30〜31行目 ブックを新規作成して指定された名前で保存する 32行目 作成したブックのアクティブになっているシート名を取得する 50行目 コピー元ブックをアクティブにする 60〜66行目 コピー元ブックの各シートに対して繰り返す 61行目 もし、各シートの名前の左の2文字が '定価' の場合は 62行目 作成したブックの変数「シート名」で指定するシートの後に、各シートをコピーする 63行目 変数「シート名」に、コピーしたシート名を取得する 64行目 コピー元ブックをアクティブにする 70行目 作成したブックをアクティブにする なお、マクロをコピー元ブックとは異なるブックに作成する場合は、10行目のコードを コピー元ブック名 = "Book1.xls" のように変更すれば可能になります。 |
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |