Office関連

Windows 10 Technical PreviewにインストールしたOffice XP DeveloperでCOMアドインを作ってみた。

先日、Windows 10 Enterprise Technical Preview(32ビット版)にOffice XPをインストールしたことについて記事を書きました。

実はアレは前振りで、本題はコレ↓です。

“Windows 10 Technical PreviewにインストールしたOffice XP Developerで最新版OfficeのCOMアドインは作れるのかどうか?”

2年ほど前に「Office XP Developer Toolsでリボン対応のCOMアドインを作成する。」で、Windows XP上のOffice XP DeveloperでOffice 2010用のCOMアドインを作ることはやったのですが、それを今回はWindows 10 Technical Preview(以下Windows 10 TP)でやってみよう、というわけです。

最新版Officeのインストール

2015年2月時点では、Office製品の最新版は“2013”です。
まずはこれを、Office XP DeveloperがインストールされたWindows 10 TPにインストールします。

Windows10TP_OfficeXP_Dev_01

Windows10TP_OfficeXP_Dev_02

Windows10TP_OfficeXP_Dev_03

Windows10TP_OfficeXP_Dev_04

インストールしたのは「Office 365 Solo」ですが、上図の通り、何の問題もありませんでした。

COMアドインの作成

Office製品のマルチインストールが終わったので、今度はOffice XP Developerによるアドイン作成です。

  1. Office XPのVBEを起動(管理者権限)し、「ファイル」メニューから「新しいプロジェクト」をクリックします。
  2. Windows10TP_OfficeXP_Dev_05

  3. 新しいプロジェクトダイアログから「アドイン プロジェクト」を選択し、「OK」ボタンをクリックします。
  4. Windows10TP_OfficeXP_Dev_06

  5. AddIn Designerが表示されるので、各項目を設定します。
  6. Windows10TP_OfficeXP_Dev_07

  7. アプリケーション バージョン」が「10.0」(Office XP)以外選択できないようになっていますが、このまま続行します。
  8. Windows10TP_OfficeXP_Dev_08

  9. AddInDesigner1」の右クリックメニューから「コードの表示」を選択します。
  10. Windows10TP_OfficeXP_Dev_09

  11. ツール」メニューの「参照設定」から「Microsoft Office 15.0 Object Library」と「Microsoft Word 15.0 Object Library」(今回はWord用のアドインを作成しているため)をチェックして「OK」ボタンをクリックします。
  12. Windows10TP_OfficeXP_Dev_10

  13. コードペインに下記コードを貼り付け、プロジェクトを保存します。
  14. Option Explicit
    
    Implements IRibbonExtensibility
    Private WithEvents wdApp As Word.Application
    
    Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
      Set wdApp = Application
    End Sub
    
    Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
      Set wdApp = Nothing
    End Sub
    
    Public Sub btnSample_onAction(control As IRibbonControl)
      On Error Resume Next
      wdApp.ActiveDocument.Range.InsertBefore "呼び出し元のコントロールIDは「" & control.Id & "」です。"
      wdApp.CommandBars.ExecuteMso "About"
      On Error GoTo 0
    End Sub
    
    Private Function IRibbonExtensibility_GetCustomUI(ByVal RibbonID As String) As String
      Dim s As String
      
      s = "<?xml version=""1.0"" encoding=""utf-8""?>" & vbCrLf
      s = s & "<customUI xmlns=""http://schemas.microsoft.com/office/2006/01/customui"">" & vbCrLf
      s = s & "  <ribbon>" & vbCrLf
      s = s & "    <tabs>" & vbCrLf
      s = s & "      <tab id=""tabSample"" label=""サンプル タブ"">" & vbCrLf
      s = s & "        <group id=""grpSample"" label=""サンプル グループ"">" & vbCrLf
      s = s & "          <button id=""btnSample"" label=""サンプル ボタン"" imageMso=""HappyFace"" size=""large"" onAction=""btnSample_onAction"" />" & vbCrLf
      s = s & "        </group>" & vbCrLf
      s = s & "      </tab>" & vbCrLf
      s = s & "    </tabs>" & vbCrLf
      s = s & "  </ribbon>" & vbCrLf
      s = s & "</customUI>"
      IRibbonExtensibility_GetCustomUI = s
    End Function

    Windows10TP_OfficeXP_Dev_11

  15. ファイル」メニューからDLLを作成します。
  16. Windows10TP_OfficeXP_Dev_12

    Windows10TP_OfficeXP_Dev_13

  17. Word 2013を起動すると、COMアドインで設定した「サンプル タブ」が表示され、「サンプル ボタン」をクリックすると、指定したプロシージャ(btnSample_onAction)が実行されることが確認できます。
  18. Windows10TP_OfficeXP_Dev_14

以上の通り、

“Windows 10 Technical PreviewにインストールしたOffice XP Developerで最新版OfficeのCOMアドインを作ることができました。”

サポートライフサイクルがとっくに終了したOffice XPを使うことは、正直お薦めできるものではありませんが、COMアドイン(しかもリボン・カスタマイズも可)が簡単に作成できる環境は魅力的と言えば魅力的です。

ヤフオク!Amazonから、まだOffice XP Developerを入手できるようですので、試してみたいという奇特な方は是非試してみてください。

(繰り返しになりますが、サポートが切れたOffice XPの使用はお薦めできません。もしやるとしたら、自己責任でよろしくお願いいたします。)

SharpDevelopでExcel用COMアドインを作成する方法前のページ

[VBA]桁を揃えてDebug.Printする。次のページ

関連記事

  1. Office関連

    Instagram APIをVBAから呼び出してみる。

    最近画像共有系のSNS、Instagram(インスタグラム)を使い始め…

  2. Office関連

    [PowerShell]iTextSharpを使ってPDFファイルを結合する

    mougにあった質問「2つのPDFファイルを結合するには」の回答用に書…

  3. Office アドイン

    [Officeアドイン]地図記号挿入アドイン

    ちょっとずつ作成していたWord用のOffice アドインがようやくO…

  4. Windows 10

    Microsoft Edgeの場所

    「Edge 本体 場所」「Microsoft Edge EXE どこ」…

  5. Excel

    Faviconをダウンロードするマクロ

    WebサイトからFaviconを抜き出すAPIがあったので早速使ってみ…

  6. Office関連

    Adobe Readerを利用してPDFファイルのページ数を取得するVBAマクロ

    mougの回答用に書いたコードです。mougは半年でログが消えてし…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP