1.Set r1 = Range("Sheet2!A1:D5")を初見で見て、ビックリした
00:00 派遣先で見たコードにビックリ
Set r1 = Range("Sheet2!A1:D5")
↑これ、できるの?シート名書いてるけど、いけるのか?
ってことで、
門外不出の秘密コードを頭の隅に覚えておき、
持ち帰ってテスト
02:03 2.シート名がわかっていて、書くんだから
Set r1 = Sheets("Sheet2").Range("A1:D5")
が
Set r1 = Range("Sheet2!A1:D5")
と書けても、
シート Sheet2 を指定してるんだから、
そんなに驚くことじゃないし、
まとめて書かれてもなぁ・・・
=Sum(Sheet2!A1:D5)
みたいに
ワークシート関数で書いているので、
違和感は無いけど。
03:43 3.調子に乗って、ブック名を含めてみた。
使わないんだけどね・・・
'=SUM([Book1TEST.xlsx]Sheet1!$C$2:$C$4) 'ブック名を含めて、隣のブック.シート.範囲って可能なの? Sub test003さらにブック名を含めてみた() Dim r1 As Range, r2 As Range 'ブックを含めた範囲をセット Set r1 = Range("[Book1TEST.xlsx]Sheet1!$B$2:$C$4") '↑ブックが開いてないとエラーになるけどね。 For Each r2 In r1 Debug.Print r2.Address & " = " & r2.Value Next End Sub
06:12 4.終わりのあいさつ
派遣先で見た、少しびっくりしたコードを紹介してみました。
使わなくても、こんなのあったんだぁ・・・程度に
#ExcelVBA #Range
#デバッグ #シート名 #ブック名
#Debug #SheetName #BookName
youtu.be
https://youtu.be/N6YfNHfTknY
目次とソースコード
00:00 派遣先で見たコードにビックリ
02:03 2.シート名がわかっていて、書くんだから
03:43 3.調子に乗って、ブック名を含めてみた。
06:12 4.終わりのあいさつ
Option Explicit Sub test001今までの書き方() Dim r1 As Range, r2 As Range Set r1 = Sheets("Sheet2").Range("A1:D5") r1.Clear r1 = "今までの書き方でテスト" r1.Cells(3, 2) = "3行,2列の位置" r1.Cells(3, 2).Interior.Color = RGB(255, 0, 0) End Sub Sub test002初見で少しビックリな書き方() Dim r1 As Range, r2 As Range Set r1 = Range("Sheet2!A1:D5") 'ん?シート名!範囲の文字列で指定 r1.Clear r1 = "Sheet2!A1:D5をテスト" r1.Cells(2, 3) = "2行,3列の位置" r1.Cells(2, 3).Interior.Color = RGB(0, 255, 0) End Sub '=SUM([Book1TEST.xlsx]Sheet1!$C$2:$C$4) 'ブック名を含めて、隣のブック.シート.範囲って可能なの? Sub test003さらにブック名を含めてみた() Dim r1 As Range, r2 As Range 'ブックを含めた範囲をセット Set r1 = Range("[Book1TEST.xlsx]Sheet1!$B$2:$C$4") '↑ブックが開いてないとエラーになるけどね。 For Each r2 In r1 Debug.Print r2.Address & " = " & r2.Value Next End Sub