- ベストアンサー
エクセルVBAで数式を削除して値を残すマクロ
- エクセル2013のVBAを使用して、数式を削除して値のみを残す方法を教えてください。
- 表の特定の列にある数式を削除し、値だけを抽出するためのマクロを作成したいです。
- 行数が変化する場合でも、範囲内の関数を削除して値のみを残す方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
sub macro1() on error resume next with range("R:R").specialcells(xlcelltypeformulas) .value = .value end with end sub みたいに。 #数式が実はひとつも入ってなかったみたいな場合にも,エラーにならないように細工をします。 #参考 実際には,どこまで数式が入ってる「可能性があるか」だけで sub macro2() range("R2:R999").value = range("R2:R999").value end sub とか sub macro3() ’あまりお勧めはしません range("R:R").value = range("R:R").value end sub とかでもかまいません。
その他の回答 (2)
- Prome_Lin
- ベストアンサー率42% (201/470)
r = 100 Range("R2":"R" & r).Selection.Value = Selection.Value というように、変数が使えますから、単に変数にして、「r」を変化させれっばいいと思います。 また、この変数「r」が最終行であれば、「r = Range("R1").End(xlDown).Row」のように、列「R」の最終行を取得するようにしておかれてはどうでしょうか?(この場合、「R」列は途中に空白が存在するとダメですが)。
- watabe007
- ベストアンサー率62% (476/760)
>範囲が変化する場合はどう書けばいいでしょうか? Q列の行数を取得すれば With Range("Q2", Cells(Rows.Count, "Q").End(xlUp)).Offset(, 1) .Value = .Value End With
お礼
ありがとうございます。 参考になりました。
お礼
ありがとうございます。 最初に書かれているやり方で解決できました。