• ベストアンサー

VBA Range オブジェクトの引数

 たとえば  Worksheets("TEST").Range("A11:C100").Clear のようなことをしたくて Sub Clear_Click()   Last = Worksheets("TEST").Range("A11").End(xlDown).Row '最終行   Erase$ = "A11:C" + str$(Last)   Worksheets("TEST").Range(Erase$).Clear End Sub としてみたのですが、   Erase$ = "A11:C" + str$(Last) でコンパイルエラーが出ます。なぜでしょう?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

下記をそれぞれ実行してみてください。 1つ目はエラー。 2つ目はOKになりませんか。 Str$関数は正の数の場合先頭に1スペースが入ると聞いていたので、下記をやってみたわけ。 取り急ぎなので、回答は締め切られそうで、十分チェックしてないが。 ーー Sub test01() x = 6 xx = Str$(x) Worksheets("Sheet1").Range("a1:A" & xx).Select End Sub -- Sub test02() x = 6 xx = Trim(Str$(x)) Worksheets("Sheet1").Range("a1:A" & xx).Select End Sub

musume12
質問者

お礼

丁寧な回答まことにありがとうございました。

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率66% (1731/2601)
回答No.1

EraseはVBAのEraseステートメントとバッティングするからではないでしょうか。 Sub Clear_Click() Last = Worksheets("TEST").Range("A11").End(xlDown).Row '最終行 strErase = "A11:C" & Last Debug.Print strErase Worksheets("TEST").Range(strErase).Clear End Sub

musume12
質問者

お礼

ああ! そうなんですね。すばやい回答まことにありがとうございました。

関連するQ&A

専門家に質問してみよう