How do you set the dimensions of an excel plot using activex from MATLAB?

조회 수: 3 (최근 30일)
I have constructed a xyscatter plot in excel using activex from matlab code but cant figure out how to dimension it. Here is the code that I have:
Workbooks = Excel.Workbooks;
Workbook = Workbooks.Add;
Sheets = Excel.ActiveWorkBook.Sheets;
sheet1 = get(Sheets, 'Item', 1);
Activesheet = Excel.Activesheet;
Range = 'A1:B10';
Data(:,1) = 1:10';
Data(:,2) = Data(:,1).^2;
ActivesheetRange = get(Activesheet,'Range',Range);
set(ActivesheetRange, 'Value', Data);
Chart = invoke(Workbook.Charts,'Add');
Excel.ActiveChart.ChartType = 'xlXYScatterLinesNoMarkers';
invoke(Chart, 'SetSourceData', ActivesheetRange);
Chart.Location('xlLocationAsObject', 'Sheet1');

채택된 답변

Scott
Scott 2012년 4월 26일
I found what works:
Excel.ActiveChart.Parent.Top = 50;
Excel.ActiveChart.Parent.Left = 500;
Excel.ActiveChart.Parent.Width = 600;
Excel.ActiveChart.Parent.Height = 300;
Thanks for your help.

추가 답변 (1개)

Richard de Garis
Richard de Garis 2012년 4월 26일
I'm going from memory here but for sizing, you might try:
Chart.ChartArea.Height = 100; % units are points, I think
Chart.ChartArea.Width = 100;
For positioning from the top left-hand corner of Cell A1, you might try:
Chart.ChartArea.Top = 100;
Chart.ChartArea.Left = 100;
If these don't work, it maybe because your Chart object is an Excel ChartObject that is the container for an Excel Chart object. I know, it's terribly confusing, but basically it means instead of using:
Chart.
in the above, you need to use:
Chart.Chart.
  댓글 수: 1
Scott
Scott 2012년 4월 26일
I tried both but i get the following error:
Error: Object returned error code: 0x800A01A8
Error in junk1 (line 28)
Chart1.ChartArea.Height = 100;
I tried with both your suggestions and I get the same thing.
Any other suggestions or do you have an example? Thanks

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 ActiveX에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by