|
▼まるん さん:
おはようございます。
>Address後の()部分が何を示しているのかがわからないのです。
>ヘルプを見ると
>式.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)
>で絶対参照を返す?など書かれていますが・・・
実際にAddress()内に値を指定してその結果を考察してみるとよいでしょう!!
新規ブック(Sheet1とSheet2というシート名が存在するブック)の標準モジュールに
'===========================================================
Sub main()
Dim g0 As Long
Dim rng As Range
Worksheets("sheet1").Activate
Set rng = mk_sample(Worksheets("Sheet1"))
MsgBox "サンプルデータをSheet1に作成 これからSheet2で参照します"
With Worksheets("sheet2")
.Activate
With .Range("c1:d1,e1:f1,g1:h1,i1:j1,k1:l1")
.MergeCells = True
.Areas(1).Value = "Address()"
.Areas(2).Value = "Address(,,,true)"
.Areas(3).Value = "Address(, False)"
.Areas(4).Value = "Address(, False,,true)"
.Areas(5).Value = "Address(false,false,,true)"
End With
.Range("c2:d10").Formula = "=" & rng.Address
.Range("e2:f10").Formula = "=" & rng.Address(, , , True)
.Range("g2:h10").Formula = "=" & rng.Address(, False)
.Range("i2:j10").Formula = "=" & rng.Address(, False, , True)
.Range("k2:l10").Formula = "=" & rng.Address(False, False, , True)
End With
End Sub
'======================================================================
Function mk_sample(sht As Worksheet) As Range
With sht.Range("a2:b10")
.Formula = "=int(rand()*1000)+1"
.Value = .Value
Set mk_sample = .Cells(1, 1)
End With
End Function
mainを実行してみてください。
上記コード例は、Sheet1のセルA2、
つまり、
Worksheets("Sheet1").Range("A2")
のAddressプロパティの()内の値をいくつか変えて指定した結果が
Sheet2に表示されています。
Addressプロパティの指定内容と実際にセルに指定された数式や値の違いを
よく見比べてみてください。
セルに対して、Addressの()内の値を変える事により、
セル番地を絶対番地や相対番地にしています。
Excelの絶対番地や相対番地は、これは算数で言えば九九、英語のABCですから、
意味は良く調べてみてください。
|
|