0

Microsoft Access データベースに基づいて自動化された PowerPoint レポートを作成するプロジェクトの見積もりを出そうとしています。これは、私がクライアントのためにすでに行ったプロジェクトの延長であり、主な違いは、新しいレポートに含まれる 2 つのグラフ (データベースのデータに基づく) が必要であるということです。

*nix でこれを行っていた場合、データを gnuplot にパイプして、画像を保存し、その画像をプログラムで PowerPoint に配置します。クライアントが他の種類のインストールを行う必要がないように、gnuplot を Visual Studio プロジェクトに簡単にパッケージ化する方法はありますか?

そうでない場合、またはそれが価値があるよりも面倒な場合は、これを行う他の方法のアイデアをいただければ幸いです。ネイティブの PowerPoint グラフを使用することは合理的でしょうか?つまり、プログラムで簡単にアクセスできるデータに基づいているのでしょうか?

前もって感謝します!

4

1 に答える 1

1

通常、MS Office の一部としてインストールされているものを使用する方法がいくつかあります。どちらを選択するかは、作成している Office のバージョンによってある程度異なります。

ほとんどの顧客が、Excel/PPT などによって提供されるデフォルトのグラフと一致しない非常に具体的な要件をグラフに対して持っていることを考えると、グラフを挿入してから、プログラムの制御下ですべての書式設定を行うか、または私の好みで、事前に保存する必要があります。 -別のPPT/PPTXファイルまたはファイル内のフォーマットされた標本チャート。これを目に見えないように開き、必要に応じてチャートを現在のスライドにコピー/貼り付けてから、プログラムでデータを変更できます。

これの大きな利点の 1 つは、コード行を変更する必要なく、書式をすばやく簡単に変更できることです。

元の質問に戻りますが、ネイティブ PPT チャートのデータには簡単にアクセスできます。簡単な VBA の例:

Sub FiddleTheChartData()

Dim oSh As Shape
Dim oCht As Chart
Dim oChtData As ChartData
Dim x As Long

' For purposes of example, assume that we've got a chart in PPT
' and that it's selected:
Set oSh = ActiveWindow.Selection.ShapeRange(1)
' We could as easily pass a reference to the shape to this routine as a param

' Sanity test; if it's not a chart, bug out
If Not oSh.HasChart Then
    Exit Sub
Else
    Set oCht = oSh.Chart
    Set oChtData = oCht.ChartData
End If

With oChtData
    .Activate
    .Workbook.Worksheets("Sheet1").Cells(3, 3) = 42
End With

' This leaves the workbook open in Excel, so:
oChtData.Workbook.Close

' Might want to iterate through the Workbook.Parent's worksheets and
' if there are more than one, decide whether or not to close them and dismiss
' Excel or not

End Sub
于 2013-01-19T18:13:46.290 に答える