カスタム検索
リボン関連

Visual Basic 6でリボン対応のアドインを作成する

今回はVisual Basic 6でリボン対応のアドインを作成する方法を紹介します。

 

1. Visual Basic 6を起動します。(Windows 7の方は右クリックメニューから「管理者として実行」してください。これをしないとDLL作成時に「システム レジストリへのアクセスでエラーが発生しました。」とのエラーが発生します。)


2. 新しいプロジェクトで「アドイン」を作成します。

3. 今回はフォームを使用しないので、frmAddInを削除します。

4. プロジェクト エクスプローラからConnect.Dsrをダブルクリックし、AddInDesignerを表示します。
5. アプリケーションは「Microsoft Excel」、アプリケーション バージョンは「Microsoft Excel 12.0(Excel 2007の場合)」、既定のロード方法は「Startup」にします(アドインの表示名と説明は任意)。

6. プロジェクトメニューの「参照設定」を開きます。
7.Microsoft Office 8.0 Object Library」にチェックが付いている場合はチェックを外し、「OK」ボタンをクリックします。

8. 再度プロジェクトメニューの参照設定から「Microsoft Office 12.0 Object Library(Office 2007の場合)」を参照します。

9. プロジェクト エクスプローラからConnect.Dsrのコードを表示します。

10. 既存のコードをすべて削除し、下記コードを貼り付けます。

Option Explicit

Implements IRibbonExtensibility

Private Function IRibbonExtensibility_GetCustomUI(ByVal RibbonID As String) As String
  Dim sXML As String
  
  sXML = "<?xml version=""1.0"" encoding=""utf-8""?>"
  sXML = sXML & "<customUI xmlns=""http://schemas.microsoft.com/office/2006/01/customui"">"
  sXML = sXML & "  <ribbon startFromScratch=""false"">"
  sXML = sXML & "    <tabs>"
  sXML = sXML & "      <tab id=""MyTab"" label=""My Tab"">"
  sXML = sXML & "        <group id=""MyGroup"" label=""My Group"">"
  sXML = sXML & "          <button id=""MyButton"" label=""My Button"" imageMso=""HappyFace"" size=""large"" onAction=""button_onAction"" />"
  sXML = sXML & "        </group>"
  sXML = sXML & "      </tab>"
  sXML = sXML & "    </tabs>"
  sXML = sXML & "  </ribbon>"
  sXML = sXML & "</customUI>"
  
  IRibbonExtensibility_GetCustomUI = sXML
End Function

Public Sub button_onAction(control As IRibbonControl)
  MsgBox "Hello! [ " & control.Id & " ]"
End Sub

11. ファイルメニューからDLLを作成します。

以上で作業は終了です。
アドイン作成後Excelを開くと、手順 10. で設定したXMLとコールバックが動作することが確認できます。

※ 上記のようにVB6でもIRibbonExtensibilityインターフェースをImplementsすることでリボンに対応したCOMアドインを作成することができます。今となってはVB6でアドイン作成、というのもなかなか出番が無いかもしれませんが、VB6をお持ちの方は一度試して見てはいかがでしょうか。