• ベストアンサー

Excel VBA For Each~Next構文についての質問

こんにちは。 VBA初心者のものですが教えてください。 ※Excel2003です 「Sheet2のC29:U29のセルについて 1より小さければ小数第2位まで表示 1以上であれば小数第1位まで表示」 の構文を作りたいのですが、 「実行時エラー438 オブジェクトは、このプロパティまたはメソッドをサポートしていません」 のエラーが出てしまい、実行できません。 作成した構文は以下の通りですが、どのように訂正すればよいか、 ご教示いただけますでしょうか。 よろしくお願いいたします。 Sub ケタ() ' Dim rngCell As Range For Each rngCell In Worksheets("Sheet2").Range("C29:U29") If rngCell.Value < 1 Then rngCell.Selection.NumberFormatLocal = "0.00" Else rngCell.Selection.NumberFormatLocal = "0.0" End If Next rngCell End Sub

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

Selectionが余分です。

raymay0905
質問者

お礼

できました~! selectionは選択したセル範囲を指すんですね。 ありがとうございました。

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

If rngCell.Value < 1 Then Sheet2.Select rngCell.Select Selection.NumberFormatLocal = "0.00" Else Sheet2.Select rngCell.Select Selection.NumberFormatLocal = "0.0" End If にしてください

raymay0905
質問者

お礼

できました! rngCell.Select を入れておくと selectionについて操作ができるんですね。 ありがとうございました。