こんにちは いつもお世話になっています。
先日、選択した複数のシートを新しいブックに値だけコピーするマクロをこちらで教えていただきました。(関数が入ったシートなのでタブの右クリックからの新規ブックへのコピーでは関数がコピーされてしまうので)
今回、このマクロで失敗するシートがあったので原因を教えてください。
値だけコピーするマクロは以下です。
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ランキング
-
エクセルで 自動的に◯や数字を...
-
【マクロ】2回実行したら、エ...
-
エクセルのツールバーから数値...
-
特定の文字列を含む、住所を抽...
-
Excel 2019 [オプション]の[リボンのユ...
-
祝日と土曜、日曜の合計をカウ...
-
EXCELの散布図で日付が1900年に...
-
マイクロソフトのPADを使ってい...
-
絶対参照
-
エクセルでCtrl+Tでテーブルの...
-
【マクロ】名前を保存する際に...
-
エクセルのクイックアクセスツ...
-
【マクロ】VLOOKUPにて参照元に...
-
Excel分数の表示について
-
【EXCEL】画像の黄色部分の抽出...
-
DATE関数で現在の年齢を出した...
-
Excelについて
-
マクロエクセルのブロック解除
-
Excelピボットテーブルの1行目
-
REGEXREPLACE関数について、
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報