- ベストアンサー
【Excel VBA】数式の設定
Excel2003を使用しています。 選択したセルの範囲に、 =ROUNDDOWN(RC[-1]*0.05/1.05,0) という数式が入力されるようにしたいのですが、ひとつのセル(ActiveCell)に対してだと、うまくいくのですが、選択範囲(Selection)にすると、うまくいきません。(実行時エラー'438' と出ていたような気がします) 選択範囲は、?行1列で、その都度指定してマクロを実行すると、上記の数式が入力されるようにしたいのですが、どのようにコードを記述したらよいのでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Error(438)は >オブジェクトは、このプロパティまたはメソッドをサポートしていません です。もしかしてセル以外のもの(シェイプなど)を選択した状態でマクロを実行しなかったでしょうか? 複数のセルを選択した場合でも、以下でいけると思います Sub Macro2() If TypeName(Selection) = "Range" Then Selection.FormulaR1C1 = "=ROUNDDOWN(RC[-1]*0.05/1.05,0)" End If End Sub
その他の回答 (1)
- papayuka
- ベストアンサー率45% (1388/3066)
回答No.1
こう言う場合は上手く行かないコードを載せないと、何が悪いか解りません。 Sub Test() If TypeName(Selection) <> "Range" Then Exit Sub Selection = "=ROUNDDOWN(RC[-1]*0.05/1.05,0)" End Sub
質問者
お礼
回答ありがとうございます。 教えていただいたコードで試したところ、うまくいきました。 ありがとうございました。
お礼
回答ありがとうございます。 >もしかしてセル以外のもの(シェイプなど)を選択した状態でマクロを実行しなかったでしょうか? 都度範囲指定するセルには、シェイプ(直線)がありますので、もしかしたら、マクロを実行する際に、セル以外のものも選択した状態だったのかもしれません。 問題が解決でき、助かりました。ありがとうございました。