データが Excel で提供されている場合、関数 UpdateChart
および PresentationFromTemplate
を使用して、そのデータを使用してプログラムで制御できます。
UpdateChart
を使用すると、特定の要素のデータシートを Excel データと交換できます。PresentationFromTemplate
を使用すると、「21. Excel データ リンク」で説明されているように、データを使用して Excel のデータ範囲にリンクされた think-cell 要素を含む PowerPoint テンプレートに基づく新しいプレゼンテーションを作成できます。
両方の機能へのインターフェイスは Office オートメーション モデルに統合されているため、Visual Basic for Applications (VBA) や C# など、Office をプログラミングできる任意の言語からアクセスできます。詳細な手順については、「はじめに」を参照してください。
think-cell へのエントリ ポイントは、think-cell アドイン オブジェクトです。これには Application.COMAddIns
コレクションからアクセスできます。think-cell への呼び出しは、常に遅延結合です。詳細は Microsoft のサポート技術情報を参照してください。
自動化での事前バインディングと遅延バインディングの使用
このように、think-cell アドイン オブジェクトのタイプは単に Object
であり、追加するタイプ ライブラリまたは参照はありません。オブジェクトを取得するだけで、呼び出す準備が整います。たとえば、Excel の VBA では次のようになります。
C# では、think-cell アドイン オブジェクトへの参照を dynamic
として宣言することで遅延バインディングを実現できます。 これは、参照を var
として宣言するときにコンパイラによって推論される型でもあるため、単純に次のように記述できます。
ここで xlapp
は、think-cell がロードされている Excel.Application
オブジェクトへの参照です。
- 25.1
- グラフの更新
- 25.2
- テンプレートからのプレゼンテーション
25.1 グラフの更新
25.1.1 署名
VBA
C#
25.1.2 説明
この関数は、target
内の strName
という名前のすべての要素を、rgData
に含まれるデータで更新します。データがグラフで正しく解釈されるためには、範囲 rgData
が既定のデータシート レイアウトまたはその転置されたバージョンに準拠している必要があります。Excel からのグラフ作成 および データレイアウトの調整 も参照してください。bTransposed
をそれぞれ false
または true
に設定することで、既定バージョンまたは転置バージョンのどちらを使用するかが示されます。グラフ以外の要素、たとえば表の場合、bTransposed
の値は無視されます。
target
Presentation
または SlideRange
、または単一の Slide
、Master
、または CustomLayout
でなければなりません。
グラフ名 strName
は大文字と小文字を区別して整合されます。この機能は以前、 にあるUpdateChart Name24. オートメーション機能のご紹介 プロパティ コントロールを使用してPowerPoint に割り当てられていました。
正しい要素がターゲットにされていることを確認するには、pres
として渡されたオブジェクトで UpdateChart 名が strName
に設定されている唯一の要素であることを確認してください。
この関数を呼び出すときに要素が何らかの Excel データの範囲にリンクされていると、リンクが切断されます。その後、要素はいかなる Excel の範囲にもリンクされません。
25.1.3 例
これらのサンプルを使用するには、24. オートメーション機能のご紹介 の説明に従ってプレゼンテーションを準備し、C:\Samples\UpdateChart\template.pptx
として保存します。
VBA
このサンプルを使用するには、Excel ワークブックのモジュールに追加します。
Microsoft PowerPoint 16.0 オブジェクト ライブラリへの参照が必要です (詳細については Visual Basic for Applications を参照してください)。
ワークブックで UpdateChart_Sample
を実行すると、最初のシートの範囲 A1:D5
に含まれるデータでプレゼンテーション テンプレートのグラフが更新されます。
C#
このサンプルを使用するには、C# コンソール アプリ プロジェクト テンプレートの Program.cs
内のコードをそれに置き換えます。
Microsoft PowerPoint 16.0 オブジェクト ライブラリ、Microsoft Excel 16.0 オブジェクト ライブラリ、Microsoft Office 16.0 オブジェクト ライブラリへの参照が必要です (詳細については、C# を参照してください)。
結果のアプリケーションを実行すると、プレゼンテーション テンプレートのグラフが更新され、値が 1、2、3 の「系列 1」という名前の単一の系列が含まれるようになり、結果が template_updated.pptx
として保存されます。
25.2 テンプレートからのプレゼンテーション
25.2.1 署名
VBA
C#
25.2.2 説明
この関数は、Excel ワークブック wb
とファイル名が strTemplate
のテンプレートとの間のデータ リンクを使用して、リンク先の範囲のデータでリンクされた要素を更新することにより、そのテンプレートをインスタンス化します。その結果、PowerPoint インスタンス ppapp
内に新しいプレゼンテーションが作成されます。
strTemplate
は完全なパスでも相対パスでもかまいませんが、その後、Excel のブックファイル の場所に関連付けられます。wb
Excel ブック wb
にリンクされている strTemplate
のすべてのグラフは、(自動更新に設定されているかどうかに関係なく) 更新されます。結果のプレゼンテーションでは、これらの要素がさらに変更されるのを防ぐために、それらのデータ リンクが壊れています。
wb
以外の Excel ブックにリンクされている strTemplate
のグラフは変更されずにリンクされているため、この関数の結果を新しいテンプレートとして保存して次のブックでこの関数を再度呼び出すことで、複数の Excel ブックからリンクを更新できます。
Excel リンクを使用してグラフ セグメントの色またはテーブル セルのフォーマットを制御する場合は、配色を [トップでデータシートの塗りつぶしを使用] (配色 を参照) または [データシートを使用...] オプション (表の書式設定 を参照) にそれぞれ設定できます。同様に、Excel リンクで表示形式をコントロールするには、[Excel の書式設定を使用する] に設定します (数値形式参照)。
PresentationFromTemplate
を呼び出す前に、Excel の各セルの背景色と数値形式を設定してください。
25.2.3 例
これらのサンプルを使用するには、まず Excel からのグラフ作成 で説明されているように、Excel ワークブックの最初のシートの範囲 G1:K4
にリンクされた積み上げグラフを含むプレゼンテーションを作成します。結果のプレゼンテーションを C:\Samples\PresentationFromTemplate\template.pptx
として保存し、ワークブックを data.xlsx
として同じディレクトリに保存します。
VBA
このサンプルを使用するには、上記で準備した Excel ワークブック data.xlsx
のモジュールに追加します。
Microsoft PowerPoint 16.0 オブジェクト ライブラリへの参照が必要です (詳細については Visual Basic for Applications を参照してください)。
PresentationFromTemplate_Sample
を実行すると、template.pptx
に含まれるチャートの最初の系列の最初の値にリンクされているセル Sheet1!H3
の値が i=1
から 10
に変更され、その値を含むように更新されたテンプレート内のグラフで新しいプレゼンテーションが作成されます。 これはワークブックにリンクされなくなり、テンプレートと同じディレクトリに output_i.pptx
として保存します。
C#
このサンプルを使用するには、C# コンソール アプリ プロジェクト テンプレートの Program.cs
内のコードをそれに置き換えます。
Microsoft PowerPoint 16.0 オブジェクト ライブラリ、Microsoft Excel 16.0 オブジェクト ライブラリ、Microsoft Office 16.0 オブジェクト ライブラリへの参照が必要です (詳細については、C# を参照してください)。
結果のアプリケーションを実行すると、目に見えて Excel が開き、ワークブック data.xlsx
が読み込まれ、template.pptx
に含まれるグラフの最初の系列の最初の値にリンクされているセル H3
の値が i=1
から 10
に変更され、その値を含むように更新されたテンプレート内のグラフで新しいプレゼンテーションが作成されます。 これはワークブックにリンクされなくなり、テンプレートと同じディレクトリに output_i.pptx
として保存します。