• ベストアンサー

ExcelVBAの質問です

VBAはまったくの初心者です。仕事上Excelで次のような操作をよくしますが、場合によっては量が多く、VBAで効率化できないかと思っていますが、ネット上いくら捜しても似たような書き込みがないので、ここで質問します。どなたか教えて頂けないでしょうか? Sheet1のA列に入力されている連続番号(例えばA1=01, A2=02, A3=03...)をセルA1から順次にSheet2のセルA1にコピーし、コピーした番号でブックに名前を付けて保存します。コピー先はいつも同じブック内のSheet2のセルA1に固定されています。 質問内容がうまく伝わったのか不安ですが、よろしくお願い致します。

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

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

sub macro1()  dim h as range  set h = worksheets("Sheet1").range("A1")  do until h = ""   h.copy destination:=worksheets("Sheet2").range("A1")   activeworkbook.saveas filename:=h.text & ".xlsm" ’注意   set h = h.offset(1)  loop end sub みたいな。 注意: ご自分で正しく修正して利用してください ・実際に保存したいのは一体どのブックの話をしているのか ・ブックを具体的にどこに保存したいのか ・ファイルの拡張子を正しく指定する事

bwcnn017
質問者

お礼

ぅおーーー、できました。 まさに私が思った通りになっていました。本当にありがとうございました<(_ _*)> 指定のフォルダにファイルをコピーしたく、次のようにしました。 Sub macro1() Dim h As Range Set h = Worksheets("Sheet1").Range("A1") FilePath = "c:\Test\" Do Until h = "" h.Copy Destination:=Worksheets("Sheet2").Range("A1") ActiveWorkbook.SaveAs Filename:=FilePath & h.Text & ".xlsm" '注意 Set h = h.Offset(1) Loop End Sub また、コピーしたブックのSheet1を削除したくいろいろ試してみましたが、うまくいかず困っています。ご指導の方よろしくお願い致します。

bwcnn017
質問者

補足

また、コピーしたブックのSheet1は削除したいです。