2012-05-09 7 views
1

私の仕事は、 '円卓をExcelで作成してから、それをMATLABに表示する'です。VBA + Matlab:円グラフのトラブル

私が思うように、私は2つの問題があります。

1)は、このグラフが正しくチャートを作成するのですか? (A1-A6は名前、B1-B6-番号です)。

この機能は正常です。将来的には、この手順(と対話する方法

Function CreateChart() As Excel.Chart 
Dim title As String 
title = "One" 


Dim Book As Workbook 
Set Book = ThisWorkbook 

Dim new_sheet As Excel.Worksheet 
Set new_sheet = Book.Sheets(1) 

Dim new_chart As Excel.Chart 
Set new_chart = Charts.Add() 

ActiveChart.ChartType = xlPie 

ActiveChart.SetSourceData Source:=new_sheet.Range("A1:B6"), _ 
     PlotBy:=xlColumns 

ActiveChart.Location Where:=xlLocationAutomatic, Name:=title 

With ActiveChart 
    .HasTitle = True 
    .ChartTitle.Characters.Text = title 
End With 

Set CreateChart = new_chart 
End Function 

2) - チャートを返す、機能

MathWorks社のMATLABを使用して、MATLABでこの円グラフを描きますか?

function chart = CreateChart(DataMatrix) 

    pie = actxserver('Excel.Chart'); 
    all_pies = actxserver('Excel.Charts'); 
    pietype = actxserver('Excel.XlChartType'); 

    pie = all_pies.Add(); 

    pie.ChartType = pietype.xlPie; 

    % here is a trouble to put data from matrix 

    pie.SetSourceData Source DataMatrix    %hm.. strange 

    end 

このコードは機能しません。

P.Sを(私は

ActiveChart.SetSourceData Source:=new_sheet.Range("A1:B6"), PloBy = xlColumns 文字列

を書き換える方法がわからない):私はそれをExcelファイルからスクリプトをロードし、チャートを返す方がよいと思います。

しかし、このチャートをmatlabでどのように扱うのですか?

+1

「このコードは機能しません」とは決して言いません。代わりに、*それがうまくいかないことを説明してください。それは実際に何をしていますか?あなたはそれが代わりに何を望んでいたのですか?なぜですか?エラーメッセージがあった場合、エラーメッセージ全体が正確に何を伝えましたか? –

+0

最初のコードは、どこにも定義されていないような 'new_sheet'というものを指します。それは 'new_chart'や' Sheet'なのかな? –

+0

@ GarethMcCaughan。 正しい質問です。しかし、私はvbaスクリプトには1つの質問があります: 'setSourceData Source'に配列変数を割り当てる方法は?出来ますか? (ソースはRangeとして定義されています) – gaussblurinc

答えて

0

xlsreadでいつでもExcelの値を読み込み、pieまたはpie3を使ってmatlab自体に円グラフを描画することができます。

+0

しかし、このvbaスクリプトを呼び出してパイを返して描画することは可能ですか? (奇妙なことに、私はmatlabがパイを描くことはできないと思う:\) – gaussblurinc

+0

Matlabが円グラフを描くことができないと思うのは間違いです。特にGuntherの答えはどの関数を使うべきかを示しています。 –