散布図にプロットするセルをいくつか選択できるマクロをコーディングしようとしています。
しかし、現在、チャート作成のためにセルエントリを選択した場所からシート名をハードコードすることしかできません。
ハードコーディングを変更して、動的なシート参照を可能にしたいと考えています。
これにより、異なるシートから複数のセルを選択し、それらの値を散布図にプロットできるようになります。
あなたのアドバイスのために以下のコードを添付します。ハードコードされたシート名に関する TQ 問題: .Name = "='US Sector (2)'!" & MultiSel.Address(ReferenceStyle:=xlA1) を .Name = "=[動的シート参照]!" に変更したい & MultiSel.Address(ReferenceStyle:=xlA1)
Sub ChartUSA()
' Keyboard Shortcut: Ctrl+y
'
Dim MultiSel As Range
Dim addr, cellAdd_name, cellAdd_Xaxis, cellAdd_Yaxis As Variant
Dim cnt As Integer
Dim ws As Worksheet
cnt = 0
' make sure a range is selected
If TypeName(Selection) <> "Range" Then Exit Sub
Set ws = ActiveSheet
'For Each cnt In Selection
For Each MultiSel In Selection
cnt = cnt + 1
'ActiveSheet.ChartObjects("Chart USA").Activate
Sheets("ChartUSASX").ChartObjects("Chart USA").Activate
ActiveChart.PlotArea.Select
With ActiveChart.SeriesCollection.NewSeries
.Name = "=ws!" & MultiSel.Address(ReferenceStyle:=xlA1)
.XValues = "='US Sector (2)'!" & MultiSel.Offset(0, 24).Address(False, False)
.Values = "='US Sector (2)'!" & MultiSel.Offset(0, 25).Address(False, False)
.MarkerSize = 10
.ApplyDataLabels
.DataLabels.Select
Selection.ShowSeriesName = True
Selection.ShowValue = False
.MarkerSize = 10
End With
Next
End Sub