tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB.NETでExcelを制御する方法が分かりません。
記事No608
投稿日: 2004/01/09(Fri) 19:37
投稿者なかむら
[OSのVer]:Windows Xp  [VBのVer]:VB.NET  

はじめまして。
プログラミングというものに、初めて挑戦しているものです。
VB.NETでプログラム作成をしていて分からないところが出てきました。
そこで、今回初めて質問をします。
以下の機能が必要なのですが・・・。
1)VB.NETからExcelを呼び出す。
2)Excelにデータを渡して、散布図を作成する。
3)その散布図に線形近似曲線を描く。
4)得られた近似曲線の傾き及びR-2乗値をTextBoxに表示する。

1)、2)はできたのですが、3)以降が全くわかりません。
ヒントを頂ければ幸いです。
宜しくお願いします。

[ツリー表示へ]
タイトルRe: VB.NETでExcelを制御する方法が分かりません。
記事No609
投稿日: 2004/01/11(Sun) 14:30
投稿者marks
初めまして。
私は、C#&VB6使いで、VB.netはわからないのですが、VB6の場合、

    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Worksheets.Add
...

...
    Dim MyChart As ChartObject
    Dim line As String
    '表示位置・グラフの大きさを指定して
    '新しい埋め込みグラフを作成します。
    Set MyChart = xlSheet.ChartObjects.Add(10, 100, 600, 330)
    With MyChart.Chart
        '散布グラフを指定
        .ChartType = xlXYScatter
        'データ設定
        .SeriesCollection.NewSeries
        .SeriesCollection(1).XValues = xlSheet.Range("A2:A12")
        .SeriesCollection(1).Values = xlSheet.Range("B2:B12")

        '作業中のシートにグラフを表示
        .Location xlLocationAsObject, xlSheet.Name
        
        '近似式の係数取得
        .SeriesCollection(1).Select
        .SeriesCollection(1).Trendlines.Add(Type:=xlPolynomial, Order:=3 _
        , Forward:=0, Backward:=0, DisplayEquation:=True, DisplayRSquared:=True).Select
        line = MyChart.Chart.SeriesCollection(1).Trendlines(1).DataLabel.Text

    End With
という様に行いました。lineに近似式が入ります。あとは、splitで切り出すなりしてください。
こいった場合、Excel上で操作をマクロに保存して、そのマクロをそのままVBに移植すれば
簡単です。VBもVBAも似たようなものですし。

[ツリー表示へ]
タイトルRe^2: VB.NETでExcelを制御する方法が分かりません。
記事No611
投稿日: 2004/01/12(Mon) 19:10
投稿者なかむら
なかむらです。
ご返答ありがとうございます。
早速、marks様のおっしゃる方法でチャレンジしてみましたが、できませんでした。

マクロ保存して、その内容をそのまま利用できれば、分かりやすいのですが、
VB.NETでは、VBAと文法が異なるのかなー?できませんでした。

また、情報がありましたら、ご連絡をお願いします。

>         '近似式の係数取得
>         .SeriesCollection(1).Select
>         .SeriesCollection(1).Trendlines.Add(Type:=xlPolynomial, Order:=3 _
>         , Forward:=0, Backward:=0, DisplayEquation:=True, DisplayRSquared:=True).Select
>         line = MyChart.Chart.SeriesCollection(1).Trendlines(1).DataLabel.Text
>
>     End With
> という様に行いました。lineに近似式が入ります。あとは、splitで切り出すなりしてください。
> こいった場合、Excel上で操作をマクロに保存して、そのマクロをそのままVBに移植すれば
> 簡単です。VBもVBAも似たようなものですし。

[ツリー表示へ]