先日、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にインストールします。
インストールしたのは「Office 365 Solo」ですが、上図の通り、何の問題もありませんでした。
COMアドインの作成
Office製品のマルチインストールが終わったので、今度はOffice XP Developerによるアドイン作成です。
- Office XPのVBEを起動(管理者権限)し、「ファイル」メニューから「新しいプロジェクト」をクリックします。
- 新しいプロジェクトダイアログから「アドイン プロジェクト」を選択し、「OK」ボタンをクリックします。
- AddIn Designerが表示されるので、各項目を設定します。
- 「アプリケーション バージョン」が「10.0」(Office XP)以外選択できないようになっていますが、このまま続行します。
- 「AddInDesigner1」の右クリックメニューから「コードの表示」を選択します。
- 「ツール」メニューの「参照設定」から「Microsoft Office 15.0 Object Library」と「Microsoft Word 15.0 Object Library」(今回はWord用のアドインを作成しているため)をチェックして「OK」ボタンをクリックします。
- コードペインに下記コードを貼り付け、プロジェクトを保存します。
- 「ファイル」メニューからDLLを作成します。
- Word 2013を起動すると、COMアドインで設定した「サンプル タブ」が表示され、「サンプル ボタン」をクリックすると、指定したプロシージャ(btnSample_onAction)が実行されることが確認できます。
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
以上の通り、
“Windows 10 Technical PreviewにインストールしたOffice XP Developerで最新版OfficeのCOMアドインを作ることができました。”
サポートライフサイクルがとっくに終了したOffice XPを使うことは、正直お薦めできるものではありませんが、COMアドイン(しかもリボン・カスタマイズも可)が簡単に作成できる環境は魅力的と言えば魅力的です。
ヤフオク!やAmazonから、まだOffice XP Developerを入手できるようですので、試してみたいという奇特な方は是非試してみてください。
(繰り返しになりますが、サポートが切れたOffice XPの使用はお薦めできません。もしやるとしたら、自己責任でよろしくお願いいたします。)
この記事へのコメントはありません。