- ベストアンサー
エクセル 複数シートの値のみコピーで
- エクセルの特定のシートにある関数がコピーされた際に、値だけをコピーするマクロが失敗する問題が発生しています。
- 現在理解できていない関数が使用されているため、この問題が発生している可能性があります。
- 関数を含むシートでも値のみをコピーするマクロを実行する方法を教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あれあれあれ。ちょっと間違いました。ごめんなさい。 訂正: sub macro1() dim w as worksheet application.calculation = xlcalculationmanual activewindow.selectedsheets.copy on error resume next for each w in worksheets with w.usedrange .value = .value end with next application.calculation = xlcalculationautomatic end sub >この、「ブック」とはマクロが利かないシートがあるブックのことでしょうか。 いいえ、ちがいます。 再掲: >シートコピーした時点でこのお約束が破られているため、失敗します。 マクロでシート複写して作成された新しいブックは、保存されていません。 #ていうか。 「失敗」って具体的に何がどう失敗しているのかご相談に書かれていないので、あてずっぽで回答しています。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
こんばんは。 A1セルの数式について、キチンと計算させるために「ブックが保存されている必要がある」という説明がありませんでしたか。 シートコピーした時点でこのお約束が破られているため、失敗します。 作成例: sub macro1() dim w as worksheet application.calculation = xlcalculationmanual activewindow.selectedsheets.copy on error resume next for each w in worksheets with w.cells.specialcells(xlcelltypeformulas) .value = .value end with next application.calculation = xlcalculationautomatic end sub
お礼
keithin 様 ありがとうございました。 教えていただいたマクロを使わせていただいたところ A1セルは成功しましたが、B3セルの値がA1セルと同じになりました。 関係ないかもしれませんが、マクロが利かないシートについて補足します。 B3セルの関数はE列までフィルハンドルでコピーしてあります。 また、B3からE3の行を10行目まで同じくコピーしてあります。 そのせいでしょうか、B3セルをコピーしたセルすべてがA1セルと同じ値になっています。 >A1セルの数式について、キチンと計算させるために「ブックが保存されている必要がある」 この、「ブック」とはマクロが利かないシートがあるブックのことでしょうか。 そうでしたら、保存済みになっています。 言葉足らずで申し訳ありませんが、さらに教えていただけないでしょうか。 よろしくお願いします。
お礼
keithin 様 ありがとうございました。お蔭様で解決しました。 説明不足にもかかわらず御推察いただき申し訳ありませんでした。 マクロで作ったブックが保存されていないので関数が利かないケースがあるというのも勉強になりました。 大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。