• ベストアンサー

エクセル2000 VBA

ウィンドウズ2000 エクセル2000です。 ブックの中のシートを一枚だけコピーして別のブックに名前を付けて保存したいと思っています。 「'コピーするシートを選ぶ Sheets("概要表").Select '全部選んでコピー Cells.Select Selection.Copy '新しいブックを選ぶ Workbooks.Add Cells.Select '新しいブックにコピーを貼り付ける。 ActiveSheet.Paste Application.CutCopyMode = False」 ここまでは順当に動いています。 質問は アクティブになった新しいブックを保存したいです。 一行から二行目にかけて設定しているファイルネームを、 メッセージボックスを表示させてそこに入力した文字列 をファイルネームとして(現在****)保存したいのですが。 ActiveWorkbook.SaveAs Filename:= _ "**********.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False どなたかよろしくお願いします。

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

  • ベストアンサー
  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.4

#3です。 前半は、↓これだけでも大丈夫そうです。 Sheets("概要表").Copy 概要表のシートをコピーして新規のブックにします。 (シートがこれ一枚になるのが欠点ですが) kyrie_esumiさんのご希望に合わないかもしれないですが、ご参考まで。 まとめるとこうなります。 ↓ Sub test()   Sheets("概要表").Copy   Application.Dialogs(xlDialogSaveAs).Show ARG2:=1 End Sub

kyrie_esumi
質問者

お礼

ご指摘いただきまして、ありがとうございました。 この方法でうまくいきました。 お手数をおかけして申し訳ありませんでした。

その他の回答 (3)

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.3

>そこに入力した文字列をファイルネームとして(現在****)保存したいのですが。 後半はこれでよいのでは? Application.Dialogs(xlDialogSaveAs).Show ARG2:=1 初心者なのであまり自信なし。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

>メッセージボックスを表示させてそこに入力した文字列 であれば、InputBoxです。 でも、Application.GetOpenFilenameが適切でしょう。

  • brick
  • ベストアンサー率12% (2/16)
回答No.1

後半をこんなふうにして下さい。 ActiveWorkbook.SaveAs Filename:= _ InputBox("保存するファイル名を入力してください") & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False とりあえずこれで動くはずです。 もし保存場所を選択する必要があるようでしたら別の回答をお待ちください。

kyrie_esumi
質問者

お礼

どうもありがとうございました。この方法ではなく、#4の方の方法で解決しましたが、どうもありがとうございました。