thinkcell API

Windowsでは、thinkcell APIを通じて一部のthinkcell機能をプログラムできます。この付録では、利用可能なすべてのAPI関数の概要と、これらの関数にアクセスするマクロ、アドイン、またはスタンドアロンプログラムを作成するための開発環境のセットアップに関する一般的な手順を説明します。

thinkcell APIを使い始める

Windowsのみ

thinkcell APIはMicrosoftのComponent Object Model(COM)に統合されているため、Visual Basic for Applications(VBA)やC#など、Officeをプログラミングできる任意の言語からAPIにアクセスできます。

thinkcellへのエントリーポイントはthinkcellアドインオブジェクトです。これはApplication.COMAddInsコレクションからアクセスできます。thinkcellへの呼び出しは常に遅延バインディングで行われるため、追加するタイプライブラリや参照はありません。Automationにおける事前バインディングと遅延バインディングの説明については、Microsoft Learnを参照してください。

一部のAPI関数はPowerPoint内のthinkcellアドインオブジェクトのメソッドであり、その他のAPI関数はExcel内のthinkcellアドインオブジェクトのメソッドです。PowerPointアドインへの参照にはtcPpAddInを、Excelアドインへの参照にはtcXlAddInを使用します。

Visual Basic for Applications

Visual Basic for Applications(VBA)を使用してマクロを作成するには、Officeホストアプリケーションに統合された開発環境を使用します。これはAlt+F11を押してアクセスできます。マクロの定義は通常モジュールに含まれており、Insert > Moduleから追加できます。特定のドキュメントに定義されているすべてのマクロは、Alt+F8を押すと表示できます。

thinkcellアドインへのメソッド呼び出しが遅延バインディングであることを示すには、その参照を含む変数をObjectとして宣言する必要があります。

Dim tcaddin As Object 
Set tcaddin = Application.COMAddIns("thinkcell.addin").Object

Officeホストアプリケーションのタイプライブラリは、既定で常に参照されます。別のOfficeアプリケーションのオブジェクトモデルにアクセスする必要がある場合は、そのタイプライブラリを参照として追加する必要があります。

たとえば、PowerPointのマクロを使用してExcelシート内のデータを操作してから、それに基づいてthinkcellグラフを更新したい場合は、VBA開発環境のTools > ReferencesダイアログからMicrosoft Excel 16.0 Object Libraryを手動で追加する必要があります。

注:16.0はOffice 2016以降のバージョン番号です。Office 2013の場合は、15.0オブジェクトライブラリを使用する必要があります。複数のバージョンのOfficeがインストールされている場合、Referencesダイアログにはインストールされている最新バージョンのオブジェクトライブラリのみが表示されます。以下では、Office 2016以降を使用しているものとします。

Application.COMAddIns("thinkcell.addin").Objectを使用すると、現在のOfficeホストアプリケーションのthinkcellアドインオブジェクト、つまりPowerPointで使用しているかExcelで使用しているかに応じてtcPpAddInまたはtcXlAddInを常に取得できます。別のOfficeアプリケーション内のアドインオブジェクトへの参照を取得し、そのオブジェクトが公開するAPI関数にアクセスするには、適切なアプリケーションインスタンスを通じて取得します。

たとえば、PowerPointからtcXlAddInへの参照を取得するには、次のようにします。

Dim xlapp As Object
Set xlapp = New Excel.Application

Dim tcXlAddIn As Object
Set tcXlAddIn = xlapp.COMAddIns("thinkcell.addin").Object

これには、Excelオブジェクトライブラリを参照として追加しておく必要があることに注意してください。

Option Explicitステートメントの使用をお勧めします。これにより、すべての変数の明示的な宣言が強制され、一般的なプログラミングエラーの回避に役立ち、IntelliSenseによる候補表示も改善されます。Tools > Options > Code Settings > Require Variable Declarationを有効にすると、すべてのモジュールに自動的に追加できます。これは当社のすべてのコードサンプルに含まれています。

C#

Officeホストアプリケーション内で実行されるアドインやドキュメントコード拡張機能を開発する場合だけでなく、スタンドアロンアプリケーションを開発する場合にも、C#からthinkcell APIを使用できます。

以下では、C#でOfficeソリューションを開発するためにVisual Studio 2017以降を使用しているものとします。アドイン開発のより具体的なセットアップ手順については、次のセクションを参照してください。各コードサンプルでは、使用するVisual Studioプロジェクトテンプレートを示します。

thinkcellアドインオブジェクトへのメソッド呼び出しを遅延バインディングにするには、thinkcellアドインオブジェクトへの参照を含む変数をdynamicとして宣言します。これは、参照をvarとして宣言した場合にコンパイラが推論する型でもあるため、次のように簡単に記述できます。

var tcPpAddIn = ppapp.COMAddIns.Item("thinkcell.addin").Object;

ここでppappは、thinkcellが読み込まれているPowerPointのApplicationオブジェクトへの参照です。

Officeアプリケーションのオブジェクトモデルにアクセスするには、そのタイプライブラリまたはプライマリ相互運用機能アセンブリ(PIA)のいずれかをプロジェクトへの参照として追加する必要があります。可能であればタイプライブラリを追加することをお勧めします。Visual Studioは、対応するPIAが利用可能な場合はその参照を自動的に追加し、利用できない場合はタイプライブラリから相互運用機能アセンブリを生成するためです(こちらを参照)。

たとえば、上記のようにthinkcellアドインオブジェクトへの参照を取得できるようにするには、Reference ManagerダイアログのCOM > Type LibrariesタブにあるMicrosoft PowerPoint 16.0 Object Libraryを追加します。プロジェクトの種類に応じて、このダイアログはSolution ExplorerでReferencesまたはDependenciesを右クリックし、Add (COM) Referenceを選択して開きます。

注:16.0はOffice 2016以降のバージョン番号です。COMタイプライブラリへの参照で既定で有効になっているEmbed Interop Typesオプションを使用すると、この参照でコンパイルされたアプリケーションは、使用するすべてのインターフェイスが各バージョンのOfficeのオブジェクトモデルに存在する限り、他のバージョンのOfficeと後方(および前方)互換になります。詳細についてはこちらを参照してください。

thinkcellのAPI関数は、COM HRESULTを使用してエラーを示します。これらの一部は、対応する.NET例外クラスに自動的にマッピングされます。方法:HRESULTと例外をマッピングするを参照してください。

アドイン開発

Office用のアドイン、またはOfficeドキュメント用のコード拡張機能を開発するには、PowerPoint/Excel VSTO Add-inおよびExcel VSTO Template/Workbookプロジェクトテンプレートを使用します。これらはOffice Developer Tools for Visual Studioの一部で、既定の構成の一部としてインストールされます。Visual Studioのインストールでこれらのツールとテンプレートを利用できない場合は、たとえばSettings⚙ > Apps > Visual Studio 2022 > Modify > Other Toolsetsに移動し、Office/SharePoint developmentにチェックを入れてModifyをクリックすることで追加できます。Microsoftのドキュメントもこちらおよびこちらを参照してください。

選択したテンプレートのOfficeホストアプリケーション用PIAは、既定で常に読み込まれます。別のOfficeアプリケーションのオブジェクトモデルにアクセスする必要がある場合は、上記の説明に従って、そのタイプライブラリを参照として追加する必要があります。

注:thinkcellのAPIは、Office Web Add-Insからは使用できません。Microsoftでは現在、残念ながらこれらを単に「Office Add-ins」と呼んでいますが、Officeアプリケーションのオブジェクトモデルと直接やり取りできず、特にthinkcellのようなCOMアドインとはやり取りできないためです。

API リファレンス

Windowsのみ

Windows では、以下の API を使用できます:

Excel データによる自動化

PowerPoint テンプレート内の thinkcell 要素を、Excel のデータで自動的に更新します。詳細については、Excel データによる自動化 を参照してください。

API

説明

マニュアルトピック

PresentationFromTemplate

PowerPoint テンプレートのコピーを作成し、コピーされたプレゼンテーション内で Excel ブックにリンクされているすべての thinkcell 要素を更新します

PresentationFromTemplate

UpdateBatch

Excel にリンクされているかどうかに関係なく、PowerPoint テンプレート内の特定の thinkcell 要素を更新します

UpdateBatch

UpdateChart(非推奨)

PowerPoint テンプレート内の thinkcell 要素を Excel のデータで更新します。UpdateBatch は UpdateChart に置き換わりました。

UpdateChart (非推奨)

スタイルファイル

thinkcell スタイルファイルを読み込み、表示、削除します。詳細については、スタイルファイル を参照してください。

API

説明

マニュアルトピック

LoadStyle

スライドマスターまたはスライドレイアウトにスタイルファイルを読み込みます

スタイル ファイルを読み込む: LoadStyle

LoadStyleForRegion

スライドレイアウトの特定の領域にのみ適用されるようにスタイルファイルを読み込みます

スタイル ファイルをレイアウトの領域に読み込む: LoadStyleForRegion

GetStyleName

スライドマスターまたはスライドレイアウトで有効なスタイルファイルの名前を返します

スタイル ファイルの名前を表示する: GetStyleName

RemoveStyles

スライドレイアウトからすべてのスタイルファイルを削除します

レイアウト内のすべてのスタイル ファイルを削除する: RemoveStyles

Mekko Graphics グラフ

Mekko Graphics グラフを thinkcell にインポートして確認します。詳細については、Mekko Graphics グラフをインポートする を参照してください。

API

説明

マニュアルトピック

ImportMekkoGraphicsCharts

PowerPoint 内の Mekko Graphics グラフを thinkcell グラフに置き換えます

ImportMekkoGraphicsCharts

GetMekkoGraphicsXML

Mekko Graphics グラフの XML 定義を抽出します

GetMekkoGraphicsXML

トラブルシューティングが必要ですか?

ナレッジベースをご確認ください