セルの場所を変数に入れて使いまわしたい。
そんなことありませんか?
私はたまーにあります。
目次
setで入れるのが基本だけど
Dim rng As Range
Set rng = Range(“A1”)
↑こんなコードを見たことありませんか?
これが基本のrangeを使った変数です。
Sub test1()
Dim rng As Range
Set rng = Range("A1")
rng = 1
End Sub
このコードを実行するとA1に1と入ります。
使いやすそうなんて思うじゃないですか。
VBA エラー 438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。
Sub test2()
Dim rng As Range
Set rng = Range("A1")
rng = 1
Sheets("Sheet1").rng = 1
End Sub
これエラー出ます。
『VBA エラー 438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。』
なぜかと言えばシートの指定ができないのです。
setで入れた瞬間にアクティブシートのrangeが入っちゃってるので、指定しようがないのです。
使いにくくないですか?
文字として入れるほうがいいんじゃない
Dim rng As String
rng = “A1:A5”
Range(rng) = 1
こんなことできます。
なんか使いやすそうでしょ。(実際使うことはほぼないけど)
Sub test3()
Dim rng As String
rng = "A1:L100"
Range(rng) = 1
End Sub
目いっぱいの1です。
Sub test4()
Dim rng As String
rng = "A1:L100"
Sheets("Sheet1").Range(rng) = 1
End Sub
シートが変わってもOK!
おわり
全シートの○○に△△を入れたい、なんて時に使えるんじゃないですか?
コメント
コメント一覧 (1件)
Hmm is ahyone else encountering problems with the pictures
on this blog loading? I’m trrying to determine if
its a problem on my end or if it’s the blog.
Anny suggestions would be greatly appreciated.
Feeel free to visit my blog post – https://Casinoonlinevavada.Onepage.website/