• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数式を削除して値だけ残すマクロ)

エクセルVBAで数式を削除して値を残すマクロ

このQ&Aのポイント
  • エクセル2013のVBAを使用して、数式を削除して値のみを残す方法を教えてください。
  • 表の特定の列にある数式を削除し、値だけを抽出するためのマクロを作成したいです。
  • 行数が変化する場合でも、範囲内の関数を削除して値のみを残す方法を教えてください。

質問者が選んだベストアンサー

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

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 とかでもかまいません。

sunny_orange
質問者

お礼

ありがとうございます。 最初に書かれているやり方で解決できました。

その他の回答 (2)

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.3

r = 100 Range("R2":"R" & r).Selection.Value = Selection.Value というように、変数が使えますから、単に変数にして、「r」を変化させれっばいいと思います。 また、この変数「r」が最終行であれば、「r = Range("R1").End(xlDown).Row」のように、列「R」の最終行を取得するようにしておかれてはどうでしょうか?(この場合、「R」列は途中に空白が存在するとダメですが)。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>範囲が変化する場合はどう書けばいいでしょうか? Q列の行数を取得すれば With Range("Q2", Cells(Rows.Count, "Q").End(xlUp)).Offset(, 1) .Value = .Value End With

sunny_orange
質問者

お礼

ありがとうございます。 参考になりました。

関連するQ&A

専門家に質問してみよう