• ベストアンサー

マクロで教えてください。

4つのエクセルデータ(A,B,C,D)それぞれ内のシート全てを ペイントというエクセルデータの機種マスタというSHEETの右隣以降に移動したい場合の マクロを教えてください。 ちなみに、数式が入っているsheetにはそれぞれ名前が付いています。 A,B,C,Dのデータにはsheet2、sheet3というなにもデータが無いsheetもありますので、 そのsheet2、sheet3は移動したくありません。

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

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

あなたが言いたかったこと: A.xls,B.xls,C.xls,D.xlsと4冊の「ブック」があります。それぞれのブックの「全てではなく」必要なシートだけを,ペイント.xlsというブックの機種マスタというシートの右に,続けてシートを移動するマクロを誰か書いて私に下さい。 「必要なシート」とは,何か一言でも書き込みされているシートの事です。 >ちなみに、数式が入っているsheetにはそれぞれ名前が付いています。 全くイミフメイのためスルー。 どんなシートにも,漏れなく名前は付いています。 一応「数式」に配慮したマクロにします。どんな数式か知りませんが。 手順: A,B,C,Dの各ブックとペイントブックは既に開いてあるとする sub macro1()  dim a as variant  dim ax as variant  dim flg as boolean  dim i as long  a = array("D.xls","C.xls","B.xls","A.xls")  for each ax in a   flg = true   workbooks(ax).activate   for i = 1 to workbooks(ax).worksheets.count   if application.counta(workbooks(ax).worksheets(i).usedrange) > 0 then    worksheets(i).select flg    flg = false   end if   next i   if not flg then    windows(ax).selectedsheets.move after:=workbooks("ペイント.xls").worksheets("機種マスタ")   end if  next end sub

aspec
質問者

お礼

自分でも書いていて意味不明だなと思いながら書いておりました。 こんな文章でも一発満点回答をいただき本当に助かりました。

関連するQ&A