![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちは いつもお世話になっています。
先日、選択した複数のシートを新しいブックに値だけコピーするマクロをこちらで教えていただきました。(関数が入ったシートなのでタブの右クリックからの新規ブックへのコピーでは関数がコピーされてしまうので)
今回、このマクロで失敗するシートがあったので原因を教えてください。
値だけコピーするマクロは以下です。
Sub 値コピー()
Dim WS As Worksheet
ActiveWindow.SelectedSheets.Copy
For Each WS In ActiveWorkbook.Worksheets
With WS.Cells
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
Next
Application.CutCopyMode = False
End Sub
失敗するシートにはつぎの関数があります。
A1セルに=REPLACE(CELL("filename",A1),1,FIND(".xlsx]",CELL("filename",A1))+LEN(".xlsx]")-1,)
B3セルに=IF(COUNTIF(Sheet2!$1:$1,$A$1),IF(ROWS($3:3)>COUNTIF(OFFSET(Sheet1!$J:$J,,MATCH($A$1&"クラス",Sheet1!$J$1:$N$1,0)-1),B$2),"",COUNTIFS(OFFSET(Sheet1!$C:$C,,MATCH($A$1,Sheet1!$C$1:$G$1,0)-1),">"&INDEX(Sheet1!$C:$G,MATCH(B$2&"☆"&ROWS($3:3),OFFSET(Sheet2!$A:$A,,MATCH($A$1,Sheet2!$A$1:$E$1,0)-1),0),MATCH($A$1,Sheet1!$C$1:$G$1,0)),OFFSET(Sheet1!$J:$J,,MATCH($A$1&"クラス",Sheet1!$J$1:$N$1,0)-1),B$2)+1&"位 "&INDEX(Sheet1!$B:$B,MATCH(B$2&"☆"&ROWS($3:3),OFFSET(Sheet2!$A:$A,,MATCH($A$1,Sheet2!$A$1:$E$1,0)-1),0))&" "&INDEX(Sheet1!$C:$G,MATCH(B$2&"☆"&ROWS($3:3),OFFSET(Sheet2!$A:$A,,MATCH($A$1,Sheet2!$A$1:$E$1,0)-1),0),MATCH($A$1,Sheet1!$C$1:$G$1,0))&"点"),"")
別シートのデータから条件に合うものを引き出す関数です。
これらの関数もおしえていただいたもので、まだ理解できていませんので、説明不十分で申し訳ありません。
これらの関数があるシートではなぜ上記のマクロが失敗するのでしょうか。
もちろん、シートのデータを選択、コピーして新規ブックに値のみコピーはできます。
上記のような関数があるシートでも複数選択シートでの値のみコピーができるマクロを教えていただけないでしょうか。
情報不足がありましたら、教えてください。
よろしくお願いします。
エクセル2007
No.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
>この、「ブック」とはマクロが利かないシートがあるブックのことでしょうか。
いいえ、ちがいます。
再掲:
>シートコピーした時点でこのお約束が破られているため、失敗します。
マクロでシート複写して作成された新しいブックは、保存されていません。
#ていうか。
「失敗」って具体的に何がどう失敗しているのかご相談に書かれていないので、あてずっぽで回答しています。
keithin 様 ありがとうございました。お蔭様で解決しました。
説明不足にもかかわらず御推察いただき申し訳ありませんでした。
マクロで作ったブックが保存されていないので関数が利かないケースがあるというのも勉強になりました。
大切に使わせていただきます。
簡単で恐縮ですが、お礼申し上げます。
No.1
- 回答日時:
こんばんは。
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セルの数式について、キチンと計算させるために「ブックが保存されている必要がある」
この、「ブック」とはマクロが利かないシートがあるブックのことでしょうか。
そうでしたら、保存済みになっています。
言葉足らずで申し訳ありませんが、さらに教えていただけないでしょうか。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】for next構文について
-
エクセルで表
-
PDFの請求明細をエクセルにしたい
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
下記マクロでMsgBox "空白です...
-
エクセルでバーコード作成し使...
-
在庫管理表に使うエクセルの関...
-
Excel関数-文字列で自動作成さ...
-
エクセルの関数について教えて...
-
Excelデータをコピペして、ペー...
-
Excelで50個のセルに同じ文字を...
-
Excel 2019 は、SPILL機能があ...
-
Microsoft Officeの中古は信用...
-
エクセルの表で1年間の曜日を...
-
エクセルで会社の従業員のデー...
-
スプレッドシート、Excelでの数...
-
[オートフィルタ]で抽出された...
-
エクセルでB列でフィルターをか...
-
エクセルの問題です。絶対値の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報