更新日: 2010 年 7 月 16 日

C# の内容はこちらに掲載しています。10 行でズバリ!! [C#] Office - アプリケーション レベルの拡張機能開発 (アドイン開発)

このコンテンツのポイント

  • Office アプリケーションのアプリケーション レベル (アドイン) の機能開発の手順を学習する
  • カスタム作業ウィンドウ (カスタムタスクペイン) の開発方法を学習する

今回紹介するコード

<ThisAddIn.vb>

Visual Basic
Private myPane As Microsoft.Office.Tools.CustomTaskPane

Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
    myPane = Me.CustomTaskPanes.Add(New UserControl1(), "カスタムの作業領域")
    myPane.Visible = True
End Sub
 

<UserControl1.vb>

Visual Basic
Imports Microsoft.Office.Interop.Excel
. . .

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    '-- 選択範囲を取得
    Dim sel As Range = CType(Globals.ThisAddIn.Application.Selection, Range)
    '-- 選択範囲の先頭 (複数の場合) を取得
    Dim target As Range = CType(sel(1, 1), Range)
    '-- 文字列を入力
    target.Value2 = "Hello, Office !"
End Sub
 

目次

  1. はじめに
  2. プロジェクトを作成する
  3. 作業ウィンドウ (タスクペイン) を生成する
  4. 処理を作成する
  5. 動作を確認する

1. はじめに

Word、Excel、PowerPoint などの Office 製品を活用したアプリケーション開発には、以下の 2 通りの方法があります。

アプリケーション レベル (アドイン) 開発した機能は Word、Excel などの Office クライアント アプリケーションに組み込まれ、Word、Excel などを起動した際に、機能がロードされます。
ドキュメント レベル 特定のブック (.xlsx)、ドキュメント (.docx)、テンプレート (.xltx、dotx) などに組み込まれ、該当のファイル (ブック、ドキュメント、テンプレート、など) を開いた際に、機能がロードされます。

ここでは、サンプル アプリケーションを例に、Excel を使ったアプリケーション レベルの機能開発 (アドイン) を解説していきます。

ページのトップへ


2. プロジェクトを作成する

今回は、ボタンを押すと、選択中の (カレントの) セルに文字を書き込む簡単な Excel アプリケーションを構築します。

まず、Visual Studio を起動します。

[ファイル] メニューの [新規作成] を選択して、[プロジェクト] をクリックします。表示される [新しいプロジェクト] ダイアログ ボックスの左のペインで [Visual Basic] - [Office] - [2007] ノードを展開し、図 1 の通り、テンプレートとして [Excel 2007 アドイン] をクリックして [OK] ボタンを押します。

図 1. プロジェクト テンプレートを選択してプロジェクトを作成

ページのトップへ


3. 作業ウィンドウ (タスクペイン) を生成する

Office アプリケーション (Office 2007 以降) でボタンなどのコントロールを配置して作業を行う場合、下図右部の作業ウィンドウ (タスクペイン) や、上部のリボンを使用することができます。(リボンを使った開発については、「10 行でズバリ!! [VB] Office - リボンのカスタマイズ」で解説します。)

図 2. Office の作業ウィンドウ (画面右)

今回は、以下の手順で、作業ウィンドウをカスタム (独自) に構築して、ボタンを配置します。

先ほど作成した Visual Studio のプロジェクトで、ソリューション エクスプローラー上のプロジェクトをマウスで右クリックして、[追加] - [新しい項目] を選択します。表示される下記の画面で、[ユーザー コントロール] を選択して [追加] ボタンを押します。

図 3. ユーザー コントロールの追加

作成された UserControl1.vb のデザイナーを開き、ツールボックス (下図左) から [Button] コントロールをドラッグ アンド ドロップしてコントロール上に配置します (図 4)。

図 4. ボタンの配置

Excel の起動時に、このユーザー コントロールを作業ウィンドウとして表示するため、ThisAddIn.vb を開き、ThisAddIn_Startup メソッドに、下記 (太字) の通り、コードを記述します。

. . .
Private myPane As Microsoft.Office.Tools.CustomTaskPane
Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
   myPane = Me.CustomTaskPanes.Add(New UserControl1(), "カスタムの作業領域")
   myPane.Visible = True

End Sub

Note : 今回は、起動時に必ず作業ウィンドウを表示しますが、通常の開発では、リボンのボタンなどから表示させる (Visible プロパティを切り替える) ように構築すると良いでしょう。リボンを使った開発については、「10 行でズバリ!! [VB] Office - リボンのカスタマイズ」で解説します。

ページのトップへ


4. 処理を作成する

最後に、ボタンを押した際の処理を作成します。今回は、選択しているセル (複数選択している場合は、一番左上のセル) に、「Hello, Office !」の文字を入力します。

ユーザー コントロールのデザイナー上 (図 4) でボタンをダブルクリックして、表示されるコードで、以下の通り、処理を記述します。

Imports Microsoft.Office.Interop.Excel
. . .
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   '-- 選択範囲を取得
   Dim sel As Range = CType(Globals.ThisAddIn.Application.Selection, Range)
   '-- 選択範囲の先頭 (複数の場合) を取得
   Dim target As Range = CType(sel(1, 1), Range)
   '-- 文字列を入力
   target.Value2 = "Hello, Office !"

End Sub

ページのトップへ


5. 動作を確認する

では、実行してみましょう。

Visual Studio で [F5] キーを押すか、[デバッグ] メニューから [デバッグ開始] を選択します。

Excel が起動し、右にボタンを持つ作業ウィンドウが表示されます (下図)。セルを選択して、[button1] をクリックすると、選択したセルに「Hello, Office !」の文字列が入力されます。(複数選択した場合は、1 番目のセルに文字列が入力されます。)

図 5. ユーザー コントロールの追加


Code Recipe .NET Framework デベロッパー センター

ページのトップへ