• ベストアンサー

エクセルで特定のシートだけを別ファイル名で保存

HohoPapaの回答

  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.9

ごめんなさい、直します。 Sub Test13()  Dim NewBookName As String  Dim TgCell As Range  '保存先ファイル名(フルパス)を組立  '指定シートだけで新たなブックを生成  '新たなブックを仮保存  With ThisWorkbook.Sheets("提出用")   'NewBookName = _    "\\Srv01\原紙" & "\" & Range("F6") & Range("A1").Value & ".xlsx"   NewBookName = _     Range("F6") & Range("A1").Value & ".xlsx"   .Copy   ActiveWorkbook.SaveAs Filename:=NewBookName  End With    '新たなブックの関数式を値に書き換え  With Workbooks(NewBookName).Sheets("提出用")   .Unprotect   For Each TgCell In .UsedRange  '<==修正後    TgCell.Value = TgCell.Value   Next TgCell  End With     '新たなブックを最終保存して閉じる  Workbooks(NewBookName).Save  Workbooks(NewBookName).Close   End Sub

akira0723
質問者

お礼

いつもお世話になっております。 修正版までいただき恐縮です。 が何度やっても非常に時間がかかり最後はエクセルが止まってしまいます。 (あるいはあっさり見慣れた「オブジェクトエラー」と表示されますが、これは前回の試行時で自動で作られるBookが表示されている場合だと思います。(今回混乱した原因) そこでF8でステップを追ってみると下記の2行を行ったり来たりします。 念のため、かなりしつこくF8を押してみましたが行ったり来たりを繰り返しました。 TgCell.Value = TgCell.Value Next TgCell 今回はNo7さんのg回答で解決できました。 検証が遅れたため、お手数をおかけしてしまいました。

akira0723
質問者

補足

今回は最初にご回答いただいたkkkkkmさんのご回答で解決できました。 今回大きくトラブった原因は下記の2点。 1.いったん失敗した後の試行では前回のBookが残っているのでエラーとなる。 2.シートには保存時に自動で保護かかるようにマクロが設定されているのでコピペの貼り付時に、シートの保護の状況で結果が変わる。これが最大の原因。 そこで、念のためにご回答の改良版を最後に試してみましたが、やはり結果は同じ個所でエラーとなりました。 恐らくまだ当方に見落としがある思われますが今回は疲れたのでここまででご容赦!! ありがとうございました。

関連するQ&A

  • エクセルシートをファイル名+シート名で保存したい

    エクセルのブック内にある複数のシートを分割して保存するとき ブック名+シート名.xlsx とファイル名を付けて保存する方法があれば教えていただけないでしょうか。 よろしくお願いします。

  • エクセル VBA 特定のシートを保存

    エクセルファイルで複数シートがある中で特定のシートのみをボタンを押すことで以下の要件を満たした形で別ファイルとして保存したいと思っていますが、何分VBA初心者の自分にはハードルが高く困っています。どうかお助け下さい。 要件 ①ファイル名はシート名+(セルW5の数値)  セルW5の数値はシート1から飛んできている数式 ②保存先は任意のフォルダーを指定 ③保存後のファイルにはマクロボタンを消去 ④拡張子はxlsx形式で保存 高望みだと思いますがどうぞよろしくお願いします。

  • エクセルでシートを新規Bookにコピーして保存

    いつもお世話になっております。 毎回お世話になっております。 過去にも似たような質問をさせていただいてその時々の要求は解決しているのですが、悲しいかな各々のVBAが組み合わせられません。(というレベルです) やりたいことは、特定のBookのアクティブシートを別の新規BookのSheet1にコピーして数値で貼り付ける。➣ここまではできました。 問題はこの、新規Bookを指定のセル(D5とA1)の内容をファイル名にして指定のフォルダに保存する。が出来ません。 1.新規BookでVBAを動かしたいのですが、複数のPCで使う時にどこに記録するのかわかりません。 2.コピーして数値で貼り付けから保存までのVBAは元のシートから直接(1回の操作)でも、新規Book1を表示させてからの操作でもどちらでも良いです。 3.Book1を保存するファイル形式はVBAが含まれないxlsxが好ましいです。(メールで送信するので)

  • Excelシート上に貼り付けられたファイルの保存

    Excelシート上(A.xlsx)にさらにExcelファイル(B.xlsx)が貼り付けられています。 A.xlsxのシート上では、ExcelのアイコンとB.xlsxのファイル名が見えている状態です。 アイコンをクリックしてB.xlsxのファイルを開くことはできますが、そこから保存しようとすると、A.xlsxのファイル名で保存されようとします。 アイコンの右クリックでもExcelファイルとしての保存はできなさそうです。 このB.xlsxを、簡単にB.xlsxのファイル名で保存する方法はないでしょうか? もちろん手で画面をみながら再入力すれば可能ですが、入力ミスや手間を省きたいのです。 Excelのバージョンは2010です。

  • エクセルの特定のシートのみを保存するマクロ

    を作成できればと思っています。 このブック内にはたくさんのシートがあります。 毎日データ更新するのですが、そのうち1シートのみ、他の人に送信する必要があるので、たとえば(理想は)編集が済んだ時点で、あるシートに設けたコマンドボタンのようなものをクリックしたときに、その必要な1シートがコピーされて、別のエクセルファイルとして保存されるのが理想です。 マイドキュメント内の、「ファイル」という名前のファイルに保存をしたいと思っています。 今は、必要なシートのシート名をクリックして、コピーを選び、新しいシートを作成して、、、という作業をしています。これを端折ることができないか、と考えております。 なお、このシートを保存するとき、そのシート名は、ある特定のセルの入力値になることが理想です。 というのも、そのマクロが起動するたびに、全く同じ名前で上書き保存されていくのは困りますので、、、 どなたかお詳しい方がいらっしゃいましたらどうぞお願いいたします。

  • エクセル別ファイル参照

    誰か教えてください。 エクセルで別ファイルからデータを参照する際に、 下記のように数式を書けばできるのは知っているのですが ='パス名[ブック名]シート名'!セル名 ブック名、シート名、セル名に 数式あるいわ、セルの値を入れたいのですが どうしたらできるのでしょうか?

  • シート名をセルに入力しこれを使って別ブックを参照

    Excel2010を使用しています。 別のブックのあるシート内にある表からデータを取ってくる方法を教えて下さい。 ****前置き**** 例えば YYY.xlsx と ZZZ.xlsx という2つのブックがあるとします。 YYY.xlsxの内容 H1、H2、・・・、H9という名前の9つのシートがあるとします。 各シートには同じフォーマットの表があり、セルD10:P12に値が入っています。 ZZZ.xlsxの内容 1月 という名前のシートがあるとします。 シート1月の中に セルA1には H1 セルA2には H2  : セルA9には H9 という値が入っています。 ********本題******** ブック ZZZ.xlsx 内のシート 1月 のセルE1 に ブック YYY.xlsx 内のシートH1のセルD10の値を表示させる方法を教えて下さい。 ただし、シートの指定は、シート 1月 のセルA1内の値と一致するのシート名のセルD10の値を表示させたいと考えています。 ですので、例えば、セル A1 に H5 という値が入っていれば、セルE1には YYY.xlsx内のシートH5のセルD10を表示させるようにしたいです。 VLOOKUP関数とINDIRECT関数を使えばできるのでは?と思っていろいろ試しているのですが、上手くいかないのが現状です。 どうかよろしくお願いします。

  • ワードからエクセル(htm形式にて保存)のシートにハイパーリンクを貼る方法

    ワードからエクセル(htm形式にて保存)のシートにハイパーリンクを貼る方法がわかりません。 通常のxls形式であればワードのハイパーリンクの設定→リンク名のところで、「ファイル名.xls#ブック名!セル番号」とすればエクセルの指定したシートへ飛ぶのですが、エクセルをhtm形式で保存したときにはうまく飛びません。最後に保存したシートへ飛んでしまいます。 どなたかお知恵をお貸し下さい!m(_)m

  • エクセルマクロで任意のファイル名をつけて保存したい

     エクセルVBAについての質問です。  エクセルのマクロで、Aというファイルを開いて、そのうち必要なワークシートだけを抽出し、新しいブックに移動し、その新しいブックを新しいブックのsheet1のセルC2の文字列をファイル名として保存するようなマクロをくみたいと思っています。  ファイルを開いて必要なワークシートだけを抽出し、新しいブックに移動するところまではできましたが、新しいブックのセルC2の文字列をファイル名として保存することができません。FNを変数として宣言して、C2の文字列を代入し、FNをファイル名として保存しようとすると、ファイルにFNという名前が付いてしまいます。どうすれば、C2の文字列をファイル名として保存できるのでしょうか。なお、保存するフォルダはc:\変換ファイル\6月です。どなたか教えてください。よろしくお願いします。

  • エクセルでシート名のCSV形式ファイルの一括複数保存

    エクセルで編集した複数のシートをそれぞれのシート名でCSV形式ファイルとして保存するにはシートを開いてはファイル名を指定してCSVで保存という操作をシート分だけしなければならないのですが、これを少ない操作で行う事は可能でしょうか。たとえばシートを複数選択して、CSV形式だけを選択して一括で保存するとかです。