2016-05-31 6 views
0

NormLinearタブのデータから散布図を作成するVBマクロを定義しようとしています。 Plotのy値データは1つの列にあり、x軸データラベルは別の不連続列にあります(x値はありません)。私は、データが正規化されているので、y軸の寸法を固定したままにしようとしています。許容できるy値の最大値と最小値のラインをy = 0.25とy = 2.5のプロットに追加するか、この範囲外のプロットバックグラウンドの異なるシェーディングを追加したいと考えています。Excel Macro Scatterplot

グラフが表示されますが、そのタブをクリックするとMS Excelによって変更されます。これは奇妙でデバッグが困難です。また、凡例はFALSEに設定しても表示されます。 OSX v10.9.5およびMS Office 2011を実行しているMacを使用しています。 ご協力いただき誠にありがとうございます。

Public Sub aMakeplot() 

Dim work_book As Workbook 
Dim r As Integer 
Dim chart_shape As Shape 
Dim i As Long 
Dim objSelection As Range, objSrcData As Range, objCategories As Range 

Set work_book = Application.ActiveWorkbook 
ActiveWorkbook.Sheets("NormLinear").Select 

Set objChart = Charts.Add 

With objChart 
    ' Set its properties 
    .ChartType = xlXYScatter 
    .Location Where:=xlLocationAsNewSheet 
    .HasTitle = True 
    .ChartTitle.Text = "Sample Mean Value for all Slides " 
    .HasLegend = False 
    .Axes(xlValue).MinimumScale = -3 
    .Axes(xlValue).MaximumScale = 3 

    .Axes(xlCategory, xlPrimary).HasTitle = True 
    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Sample Descriptions" 
End With 

' Create a single range from the union of 
' categories and selected data, and then 
' update the chart. 
Set objCategories = ActiveWorkbook.Sheets("NormLinear").Range("h12:h23") 
Set objSelection = ActiveWorkbook.Sheets("NormLinear").Range("p12:p23") 

Set objSrcData = Union(objCategories, objSelection) 
objChart.SetSourceData objSrcData 

ActiveWorkbook.Sheets("NormLinear").Select 

End Sub 

答えて

0

あなたのコードは、Excel 2016 for Windowsでうまく動作するようです。ただし、Excelの一部のバージョンでは、グラフにデータがない場合は、グラフのタイトルや凡例などの要素をあまり使用できません。グラフを作成するとすぐにデータを追加して(つまり、SetSourceData)、すべての書式設定に従います。