• ベストアンサー

【Excel VBA】数式の設定

Excel2003を使用しています。 選択したセルの範囲に、  =ROUNDDOWN(RC[-1]*0.05/1.05,0) という数式が入力されるようにしたいのですが、ひとつのセル(ActiveCell)に対してだと、うまくいくのですが、選択範囲(Selection)にすると、うまくいきません。(実行時エラー'438' と出ていたような気がします) 選択範囲は、?行1列で、その都度指定してマクロを実行すると、上記の数式が入力されるようにしたいのですが、どのようにコードを記述したらよいのでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

Error(438)は >オブジェクトは、このプロパティまたはメソッドをサポートしていません です。もしかしてセル以外のもの(シェイプなど)を選択した状態でマクロを実行しなかったでしょうか? 複数のセルを選択した場合でも、以下でいけると思います Sub Macro2() If TypeName(Selection) = "Range" Then   Selection.FormulaR1C1 = "=ROUNDDOWN(RC[-1]*0.05/1.05,0)" End If End Sub

rx-z5815
質問者

お礼

回答ありがとうございます。 >もしかしてセル以外のもの(シェイプなど)を選択した状態でマクロを実行しなかったでしょうか? 都度範囲指定するセルには、シェイプ(直線)がありますので、もしかしたら、マクロを実行する際に、セル以外のものも選択した状態だったのかもしれません。 問題が解決でき、助かりました。ありがとうございました。

その他の回答 (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

rx-z5815
質問者

お礼

回答ありがとうございます。 教えていただいたコードで試したところ、うまくいきました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう