質問: エクセルの特定のシートのみを保存するマクロ を作成できればと思っています。 このブック内にはたくさんのシートがあります。 毎日データ更新するのですが、そのうち1シートのみ、他の人に送信する必要があるので、たとえば(理想は)編集が済んだ時点で、あるシートに設けたコマンドボタンのようなものをクリックしたときに、その必要な1シートがコピーされて、別のエクセルファイルとして保存されるのが理想です。 マイドキュメント内の、「ファイル」という名前のファイルに保存をしたいと思っています。 今は、必要なシートのシート名をクリックして、コピーを選び、新しいシートを作成して、、、という作業をしています。これを端折ることができないか、と考えております。 なお、このシートを保存するとき、そのシート名は、ある特定のセルの入力値になることが理想です。 というのも、そのマクロが起動するたびに、全く同じ名前で上書き保存されていくのは困りますので、、、 どなたかお詳しい方がいらっしゃいましたらどうぞお願いいたします。
回答: 何だか、フォルダとファイル、ブックとシートの区別が付いていないような気がします。 こういう事でしょうか? アクティブなシートを、シート一枚だけのブックとして、マイドキュメントの「ファイル」と言うフォルダに保存したい。 しかも、ブック名はシートの特定セルの値を使いたい。 それでしたらこんな感じ。 マイドキュメントのパスはosによって違うのでcドライブにして有ります。実際のパスに合わせて変更してください。 シート名はa1セルの値を使用、a1セルが空の時は年月日時分秒をブック名に使用します。 また、同じ名前のブックがある時は保存せずにメッセージで警告しています。 sub sample() dim ssheetname, ssheetfullpath ssheetname = range("a1").value if isempty(ssheetname) then ssheetname = format(now(), "yyyymmddhhmmss") ssheetfullpath = "c:\ファイル\" & ssheetname & ".xls" if dir(ssheetfullpath) <> "" then msgbox ("同名ブック有り") exit sub end if thisworkbook.activesheet.copy activeworkbook.saveas filename:=ssheetfullpath activewindow.close end sub #excel2003で確認