• 締切済み

Excelでブックを値保存したい

10のシートからなるブックがあるとします。 それぞれのシートには、関数やマクロが設定されています。 このブックを使って、すべての関数、マクロ計算が終了したあとで、結果のみのブックを作りたいのですが、どのようにすればよいでしょうか? ・元のブックには、関数、マクロを含むものとします。 ・最終的にほしいブックは  ・関数・マクロを含まない  ・罫線は元と同じ  ・印刷範囲、改ページや見出し、余白などの設定も元と同じ   よろしくお願いします。 ちなみにEXCELのバージョンは2010ですが、できれば2003でも使用可能にしたいです。

みんなの回答

  • 374649
  • ベストアンサー率38% (203/527)
回答No.5

>10のシートからなるブックがあるとします。 計算処理の必要な10Sheetsのブックから計算処理の終わった結果のみの10Sheetsのデータブックを作りたいということですか。 仮に元のブックをAとしてデータブックをBとすればAの処理が終わったらBをOPENして各シートのデータのみをBにコピーするマクロを組めばできるのでは。 逆の発想をすればBに転記しやすい書式でAの各シートを設計すれば良いと思います、他の人に書式を変更されたくないなら書式もマクロで組んでおけばよいのではないでしょうか。 希望する処理を整理してそれをマクロで組んでいけばよいので、質問者が書いたそのままを整理してプログラムを書いていけばよいと思います。

ryou4649
質問者

補足

やりたいことは、その通りです。 マクロ記録では、汎用性がなくなってしまいますよね。 例えば、8シートのものと10シートのものとか… VBマクロの文法に詳しくないので、for~nextを使うにしても、シート数をもってくる変数がわからなかったり… (下のNo2のkeithinさんの書き込みでようやくわかった程度なんです) やっぱりマクロを組まないと無理なんですね。 「値に変えて保存」みたいな方法があればいいのですか…

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

ん? どこをみているのですか? >これは、現在のブックをすべて値に書き換えるマクロですね。 いいえ,違いますよ。 判ったつもりになって,寄せられたアドバイスを試してみることもしていないって事ですね。 んじゃ,こうすれば安心しますか。先のマクロとナニも違いませんけど。 sub macro1()  dim i as long  thisworkbook.worksheets.copy  for i = 1 to activeworkbook.worksheets.count   worksheets(i).usedrange.value = worksheets(i).usedrange.value  next i end sub #まぁ,どんなマクロを含んでいるのか情報が足りてないよと指摘をしてもスルーですから,これも役に立つんだかさっぱり不明なんでフォローしがいが無いんですけどね。

ryou4649
質問者

補足

あれ?夕方に書き込んだのに反映されてない… 補足投稿後、すぐに別のファイルになってることに気がついたのですが、補足の追加が出来なかったので書き込めませんでした。すみません。m(_ _)m ただ、マクロ終了後に、ブックがかたまったような状態になってしまうため、2つのシートになってることがわかりにくかったんです。 今夜は帰りが遅くなってしまったので、明日、excel2003でもういちど試してみます。(職場の2010は最近使い始めたのでどうも使い方がわかりにくくて…) 「どんなマクロ」について、スルーしたわけじゃなくて、どう書けばいいのかわからなかったんです。 マクロは、標準モジュールに書いた普通のマクロと、シートに書き込んだ  Private Sub Worksheet_BeforeDoubleClick などのマクロがあります。

  • nobb_hero
  • ベストアンサー率45% (9/20)
回答No.3

手元にExcelが無いので概略だけになってしまいますが、、、 VBAで新規Book作成 シートの内容を新規Bookにコピー(たしかシートのコピーはシートモジュールも含めてコピーしたはずなので) という事を行えばできますね。 簡単な方法としてはマクロの記録を繰り返して、必要なところだけをつなぎ合わせる ですかね?

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

どんなマクロを含んでいるのですか? 標準モジュールやユーザーフォームなどだけなら: sub macro1()  dim i as long  thisworkbook.worksheets.copy  for i = 1 to thisworkbook.worksheets.count   worksheets(i).usedrange.value = worksheets(i).usedrange.value  next i end sub シートモジュールを含んでいるなら sub macro2()  dim i as long  dim w as workbook  worksheets.add  activesheet.move  activesheet.name = thisworkbook.worksheets(1).name  set w = activeworkbook  for i = 2 to thisworkbook.worksheets.count   w.worksheets.add after:=w.worksheets(i - 1)   w.worksheets(i).name = thisworkbook.worksheets(i).name  next i  for i = 1 to thisworkbook.worksheets.count   w.worksheets(i).name = thisworkbook.worksheets(i).name   thisworkbook.worksheets(i).cells.copy destination:=w.worksheets(i).range("A1")   w.worksheets(i).usedrange.value = w.worksheets(i).usedrange.value  next i end sub その他ページ設定など必要な範囲の内容を適切にコピーしてください。 「マクロを直接削除するマクロ」はそのまま「マクロウィルス」の手法につながるので,こちらのような一般の質問相談掲示板では回答は控えます。

ryou4649
質問者

補足

これは、現在のブックをすべて値に書き換えるマクロですね。 これだと、操作者が間違って元ファイルを書き換えてしまうおそれがあるので、元ファイルから新たに値のみのブックを別に育成したいのですが…

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

以下のような手順が簡単かもしれません。 1)そのファイルを別名で保存する。 2)各シートでCtrl+Aですべて選択し、Ctrl+Cでコピーし、右クリック「形式を選択して貼り付け」で「値」を選択する。 3)Alt+F11でVBEを起動し、Module1などを選択して、右クリックから「Module1の解放」でエクスポートを聞いてくるので「いいえ」を選択します(シートにマクロがある場合はそのシートを選択して右クリックからコードを表示して削除してください)。

ryou4649
質問者

補足

できれば、手順をマクロ化して、だれでも計算結果から、結果のみのブックを作れるようにしたいんです

関連するQ&A

  • エクセルのブック間で値のみコピー

    エクセル 2003使用です。 エクセルのブック間におけるシートのコピーについてお願いします。 Book.Aのシート1の各セルは、関数の数式で入力(出力)されています。 このシートをコピーして、Book.Bにペーストしたいのですが、 コピーは、関数計算後の”結果の文字列”で行いたいです。 Book.Aのシート全体をコピーして Book.Bのシートに「形式を選択して貼り付け」 → 「値」 で可能なのですが、シート数が多いので困っています。 Book.Aのシートタブを右クリックして「移動またはコピー」で シートのコピーをすると、数式でコピーされてしまいます。 この方法で、値のみコピーのような方法はありませんでしょうか? よろしくお願いします。

  • EXCELブックを保存しないで終了

    EXCEL2000で"A"というブックから"B"というブックを マクロのVBAから開きます。 両方のシートが開いた状態から,"B"のマクロより 両方のブック共に保存しないで、EXCEL自体終了するマクロ を"B"側に下のような感じで作成しました。 -------- EXCEL終了処理 ------------------ Application.DisplayAlerts = False ThisWorkbook.Saved = False Application.Quit ---------------------------------------- これで終了しようとすると、「"B"のブックを保存しますか?」というメッセージが表示されてしまいます。終了前のマクロ処理の中で"B"ブックを変更しているので、このようなメッセージが表示されると思うのですが、 Application.DisplayAlerts = False 命令は利かないのですか? どなたか教えて下さい。宜しくお願い致します。

  • Excel VBAでのブックの保存方法について教えてください。

    こんばんは。ExcelVBAのコードを教えてください。 マクロを含むブック(例:生産個数管理表)の3つのシートを、3シートとも新しいブックに移動し、「今日の日付」と「生産数」(例:20090818生産数)というブック名を付けて、元のマクロを含むブックと同じ場所に保存し、マクロを含んだブックは保存することなく閉じる。ようにしたいのですが、VBAではどのようにすればよいのでしょうか。 宜しくお願い致します。

  • エクセル マクロで別のブックに貼り付けたい!

    作成したシートを別のブック(既存)にマクロを使って貼り付けたい のですが、いろいろ調べた結果以下のようにはすることができました。 ---------------------------------------------------------------- Sub SaveSheet() Dim sFileName As String 'ファイル名の設定 sFileName = "C:\a\test.xls" 'シートをコピーして新規ブックを作成 Sheets(Array("Sheet1", "Sheet2")).Copy '作成したブックの保存 ActiveWorkbook.SaveAs sFileName End Sub ---------------------------------------------------------------- これはとあるサイトで見つけたもので、私自身が作成したものでは ありません。 このマクロの問題は、 ○あらたにブック(シート)が作成されること (マクロ実行時は上書きになるので、変更できなくても使えないわけ ではない) ○元データはシート丸ごとであり、セル範囲を選択できない。 ○貼り付けるシートにおいても、任意の場所を起点とできない。 ということです。 整理しますと、『作成したシートの任意のセル範囲を、別に存在する ブックに、任意のセルを起点として貼り付けたい』 ということです。 どうかよろしくお願いします。m(_ _)m

  • マクロで印刷プレビュー

    マクロで印刷プレビューを設定したいのですが、 印刷用のシートには罫線を引いていないのですが、プレビューを した時に、罫線を表示させることってできますか? あと、印刷用のシートには印刷範囲が設定されているのですが、 プレビューでは印刷範囲外の文字等を表示させたいのですが、 これもマクロでできますか?

  • Excelブックを保存しないで終了するには

    現在Win7,Excel2010、Focus Talk Ver3(音声読み上げソフト)の入ったパソコンを使用しています。 視覚障害者のために計算式の入ったエクセルブックがあります。 使用者の人はエクセルを起動させ、数値を入力して結果を音声読み上げソフトが読み上げてくれます。 使用者は単純に計算結果を読み上げてくれればそれでよく、そのブックを保存せずに終了したいわけです。エクセルを終了させるためにAltキーとF4キーを押すわけですが、保存するかダイアローグが表示されます。 一応自動終了のために以下のマクロを作成しました。何も編集せずAltキーとF4キーを押すと保存するかどうかのダイアローグは出ませんが、編集すると終了時ダイアローグが出ます。 Sub CloseWorkbook() Application.Quit Windows("三角関数マクロ.xlsm").Close True End Sub 編集してもダイアローグを表示せずに終了する方法はありませんでしょうか。またできれば、ひとつのキーだけでExcelを自動終了させる方法はありませんでしょうか。 よろしくお願いします。

  • excelでブックを開くのが遅い

    初めて利用させて頂きます。 質問は下記となります。 エクセルにてマクロを使用したブック、 使用していないブック。 それぞれ最終的に2mb程の容量となり レイアウトに差はありません。 前者は月初から月末までの各日毎に2シートずつ作成していきます。 後者は当月日数×2シートがすでに作成されている状態です。 後者はブックを開く時間は3秒前後に対し 前者はブックを開く時間は20秒前後です。 前者のマクロはブックを開く際には全く動きません。 なぜ前者は開くのに時間がかかるのか わかりません。 時間が掛かる理由と対象法について、 教えていただけると幸いです。

  • エクセルVBAで質問です

    あるブックのシートに入力するようにしています。そこには関数や、 リストなどさまざまな設定がされています。そのブックにコードを書いてマクロ実行ボタンもそのシートに付けたいと思っています。 このシートをデスクトップにコピーして別ブックとして作成したいのですが、コードを教えていただけないでしょうか。できるかわかりませんが、関数が設定されてある箇所は関数としてではなく、値としてコピーされると都合がいいです。 また、作成されたブック(コピーしたシート)には、マクロのボタンなんかが残らない形ではできないものでしょうか?

  • エクセルのブックをマクロ抜きで名前を変えて保存する方法

    よく使う表を名前を変えて保存していますが、初期のブックにマクロを設定したシートが有りました。しかしそのマクロが不要なので、マクロを無しで又は削除して保存したいのです。 ブックを開くたびにマクロの警告が出て不便です。 どなたか教えてください。

  • エクセルのマクロ

    同一ブック内の複数のシートを印刷させるマクロを知りたいのですが。 Sheet1・Sheet2・Sheet3で印刷範囲が3シートともRange("A1:H10")です。 よろしくお願いします。

専門家に質問してみよう