プロが教えるわが家の防犯対策術!

マクロの記録でグラフを作って少して手直ししたのですが、シート名L8の後でR○○C○○と出てくる記述がよくわかりません。参照しているセルだろうというのはわかるのですが、どういう規則で書かれているかわかりません。よろしくお願いいたします。

Sub L82元表1()
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets("L8").Range("AT15:AU17"), PlotBy:= _
xlRows
ActiveChart.SeriesCollection(1).Values = "=('L8'!R17C46,'L8'!R19C46)"
ActiveChart.SeriesCollection(1).Name = "='L8'!R16C44"
ActiveChart.SeriesCollection(2).Values = "=('L8'!R17C47,'L8'!R19C47)"
ActiveChart.SeriesCollection(2).Name = "='L8'!R18C44"
ActiveChart.Location Where:=xlLocationAsObject, Name:="L8"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = Range("AR14").Text & Range("AS14").Text & "2元表"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub

A 回答 (1件)

グラフを書いている(というかグラフの元となるデータ表の場所などを指定している)マクロですね。


たぶん詳しい誰かが自力で書いたのではなく、Excelの自動記録マクロだと思います。

Excelにおけるセルの番地の表し方には
「A1」形式と呼ばれるアルファベット×数値で表す方法と、
「R1C1」形式と呼ばれる、今回のような方式があります。

RはRowつまり行。数字で表すところの1行2行・・・です。
CはColumnつまり列です。アルファベットで表すA列B列・・・です
L8!というのはシート名「L8」を参照するという意味があります。

つなげて書くと
(L8'!R17C46,'L8'!R19C46) となっていますが、
これはL8シートの17行46列から19行46列までのセル範囲を選択していることになります。
要するにA1形式で書き直すと、「L8!AT17:AT19」です。

SeriesCollection(1).Values =のあとに書かれていますから
おそらくグラフの「系列1」の値をこのセル範囲として指定しているところでしょう。
    • good
    • 0
この回答へのお礼

早速の返答ありがとうございました。
理解できました。
ありがとうございました。

お礼日時:2010/01/31 06:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!