109

いくつかのボタンが付いたカスタムタブをExcelリボンに追加する方法を探しています。私はグーグルを介してそれに対処するいくつかのリソースを偶然見つけましたが、すべてが危険で途方もなく複雑に見えます。

それを行うための迅速で簡単な方法は何ですか?VBAがExcelに読み込まれたときに、新しいタブが読み込まれるようにしたいと思います。

更新:ここからこの例を試しましたが、最後の命令で「オブジェクトが必要です」というエラーが発生します:

Public Sub AddHighlightRibbon()
Dim ribbonXml As String

ribbonXml = "<mso:customUI xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">"
ribbonXml = ribbonXml + "  <mso:ribbon>"
ribbonXml = ribbonXml + "    <mso:qat/>"
ribbonXml = ribbonXml + "    <mso:tabs>"
ribbonXml = ribbonXml + "      <mso:tab id=""highlightTab"" label=""Highlight"" insertBeforeQ=""mso:TabFormat"">"
ribbonXml = ribbonXml + "        <mso:group id=""testGroup"" label=""Test"" autoScale=""true"">"
ribbonXml = ribbonXml + "          <mso:button id=""highlightManualTasks"" label=""Toggle Manual Task Color"" "
ribbonXml = ribbonXml + "imageMso=""DiagramTargetInsertClassic"" onAction=""ToggleManualTasksColor""/>"
ribbonXml = ribbonXml + "        </mso:group>"
ribbonXml = ribbonXml + "      </mso:tab>"
ribbonXml = ribbonXml + "    </mso:tabs>"
ribbonXml = ribbonXml + "  </mso:ribbon>"
ribbonXml = ribbonXml + "</mso:customUI>"

ActiveProject.SetCustomUI (ribbonXml)
End Sub
4

8 に答える 8

152

ちなみに、VBAExcelを使用してExcelリボンにカスタムタブを作成することはできません。ただし、VBAを使用してリボンコンポーネントを非表示/表示することはできます。さらに、上記のリンクはMS Project用であり、MSExcel用ではありません。

カスタムUIエディターと呼ばれるこの無料のユーティリティを使用して、Excelアプリケーション/アドインのタブを作成します。


編集:OPによる新しいリクエストに対応するため

チュートリアル

これが約束通りの短いチュートリアルです:

  1. カスタムUIエディター(CUIE)をインストールしたら、それを開いて、[ファイル]、[ファイル]の順にクリックします。関連するExcelファイルを開いて選択します。CUIEで開く前に、Excelファイルが閉じていることを確認してください。例として、新しいワークシートを使用しています。

    ここに画像の説明を入力してください

  2. 下の画像に示すように右クリックし、[Office2007カスタムUIパーツ]をクリックします。「customUI.xml」を挿入します

    ここに画像の説明を入力してください

  3. 次へメニューをクリックします挿入| サンプルXML| カスタムタブ。基本的なコードが自動的に生成されることに気付くでしょう。これで、要件に従って編集する準備が整いました。

    ここに画像の説明を入力してください

  4. コードを調べてみましょう

    ここに画像の説明を入力してください

    label="Custom Tab":「カスタムタブ」をタブに付けたい名前に置き換えます。とりあえず「ジェローム」と呼びましょう。

    以下の部分は、カスタムボタンを追加します。

    <button id="customButton" label="Custom Button" imageMso="HappyFace" size="large" onAction="Callback" />
    

    imageMso:ボタンに表示される画像です。「HappyFace」はあなたが今見るものです。こちらからさらに多くの画像IDをダウンロードできます

    onAction="Callback":「コールバック」は、ボタンをクリックしたときに実行されるプロシージャの名前です。

デモ

それでは、2つのボタンを作成して「JGボタン1」と「JGボタン2」と呼びましょう。最初のイメージとして幸せそうな顔を保ち、2番目のイメージとして「太陽」を保ちましょう。修正されたコードは次のようになります。

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="MyCustomTab" label="Jerome" insertAfterMso="TabView">
<group id="customGroup1" label="First Tab">
<button id="customButton1" label="JG Button 1" imageMso="HappyFace" size="large" onAction="Callback1" />
<button id="customButton2" label="JG Button 2" imageMso="PictureBrightnessGallery" size="large" onAction="Callback2" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

CUIEで生成されたすべてのコードを削除し、その代わりに上記のコードを貼り付けます。CUIEを保存して閉じます。これで、Excelファイルを開くと次のようになります。

ここに画像の説明を入力してください

今度はコード部分です。VBAエディターを開き、モジュールを挿入して、次のコードを貼り付けます。

Public Sub Callback1(control As IRibbonControl)

    MsgBox "You pressed Happy Face"

End Sub

Public Sub Callback2(control As IRibbonControl)

    MsgBox "You pressed the Sun"

End Sub

Excelファイルをマクロ対応ファイルとして保存します。これで、スマイリーまたは太陽をクリックすると、関連するメッセージボックスが表示されます。

ここに画像の説明を入力してください

お役に立てれば!

于 2012-01-13T15:18:25.577 に答える
34

これは、Excel2013のVBAで実現できました。特別なエディターは必要ありません。必要なのは、[開発者]タブからアクセスできるVisualBasicコードエディターだけです。[開発者]タブはデフォルトでは表示されないため、[ファイル]>[オプション]>[リボンのカスタマイズ]で有効にする必要があります。[開発者]タブで、[VisualBasic]ボタンをクリックします。コードエディタが起動します。左側の[プロジェクトエクスプローラー]ペインを右クリックします。挿入メニューをクリックして、モジュールを選択します。以下の両方のサブを新しいモジュールに追加します。

Sub LoadCustRibbon()

Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String

hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"

ribbonXML = "<mso:customUI      xmlns:mso='http://schemas.microsoft.com/office/2009/07/customui'>" & vbNewLine
ribbonXML = ribbonXML + "  <mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:qat/>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "      <mso:tab id='reportTab' label='Reports' insertBeforeQ='mso:TabFormat'>" & vbNewLine
ribbonXML = ribbonXML + "        <mso:group id='reportGroup' label='Reports' autoScale='true'>" & vbNewLine
ribbonXML = ribbonXML + "          <mso:button id='runReport' label='PTO' "   & vbNewLine
ribbonXML = ribbonXML + "imageMso='AppointmentColor3'      onAction='GenReport'/>" & vbNewLine
ribbonXML = ribbonXML + "        </mso:group>" & vbNewLine
ribbonXML = ribbonXML + "      </mso:tab>" & vbNewLine
ribbonXML = ribbonXML + "    </mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "  </mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "</mso:customUI>"

ribbonXML = Replace(ribbonXML, """", "")

Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile

End Sub

Sub ClearCustRibbon()

Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String

hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"

ribbonXML = "<mso:customUI           xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">" & _
"<mso:ribbon></mso:ribbon></mso:customUI>"

Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile

End Sub

Wookbook openevenでLoadCustRibbonsubを呼び出し、ThisWorkbookコードファイルのBefore_CloseイベントでClearCustRibbonsubを呼び出します。

于 2015-06-17T13:41:21.093 に答える
27

私は狂ったように苦労しましたが、これは実際には正しい答えです。それが価値があるので、私が逃したのはこれでした:

  1. 他の人が言うように、VBAでCustomUIリボンを作成することはできませんが、作成する必要はありません。
  2. アイデアは、Excelの[ファイル]>[オプション]>[リボンのカスタマイズ]を使用してxmlリボンコードを作成し、リボンを.customUIファイル(xmlを含む単なるtxtファイル)にエクスポートすることです。
  3. ここでトリックがあります。.customUIファイルからコードをコピーすることにより、ここで参照しているMSツールを使用して.xlsmファイルに.customUIコードを含めることができます。
  4. .xlsmファイルに含まれると、開くたびに、定義したリボンが ユーザーのリボンに追加されます。ただし、<ribbon startFromScratch = "false">を使用しないと、残りのリボンが失われます。ワークブックを終了すると、リボンが削除されます。
  5. ここからは簡単です。リボンを作成し、リボンに固有のxmlコードを.customUIファイルからコピーして、上記のようにラッパーに配置します(... <tabs> your xml </ tabs .. 。)

ちなみにロンのサイトでそれを説明しているページは現在 http://www.rondebruin.nl/win/s2/win002.htmにあります

リボンのボタンを有効/無効にする方法に関する彼の例は次のとおりです http://www.rondebruin.nl/win/s2/win013.htm

リボンの他のxmlの例については、 http://msdn.microsoft.com/en-us/library/office/aa338202%28v=office.12%29.aspxも参照して ください。

于 2014-03-20T05:40:49.140 に答える
19

ここでの回答は、カスタムUIエディターの使用に固有のものです。私はその素晴らしいプログラムなしでインターフェイスを作成するのにしばらく時間を費やしたので、他の誰かがそのカスタムUIエディターが必要かどうかを判断できるように、ここでソリューションを文書化しています。

次のMicrosoftヘルプWebページ( https://msdn.microsoft.com/en-us/library/office/ff861787.aspx)に出くわしました。これは、インターフェイスを手動で設定する方法を示していますが、カスタムアドインコードを指定するときに問題が発生しました。

ボタンをカスタムマクロで機能させるには、.xlam subsのマクロを、このSOの回答で説明されているように呼び出すように設定します-リボンからExcelマクロを呼び出します。基本的に、リボンxmlからポイントされたモジュールにその「controlAsIRibbonControl」パラメーターを追加する必要があります。また、アドインによってロードされたモジュールを適切に呼び出すには、リボンxmlにonAction = "myaddin!mymodule.mysub"構文が必要です。

これらの手順を使用して、VBAがアドインとともにExcelに読み込まれるときにカスタムタブが読み込まれるExcelアドイン(.xlamファイル)を作成できました。ボタンはアドインからコードを実行し、カスタムタブは次の場合にアンインストールされます。アドインを削除します。

于 2015-03-17T03:11:33.967 に答える
10

Roi-Kyi Bryantの回答に加えて、このコードはExcel2010で完全に機能します。Alt+F11を押すと、VBAエディターがポップアップ表示されます。ThisWorkbook左側をダブルクリックして、次のコードを貼り付けます。

Private Sub Workbook_Activate()

Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String

hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"

ribbonXML = "<mso:customUI      xmlns:mso='http://schemas.microsoft.com/office/2009/07/customui'>" & vbNewLine
ribbonXML = ribbonXML + "  <mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:qat/>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "      <mso:tab id='reportTab' label='My Actions' insertBeforeQ='mso:TabFormat'>" & vbNewLine
ribbonXML = ribbonXML + "        <mso:group id='reportGroup' label='Reports' autoScale='true'>" & vbNewLine
ribbonXML = ribbonXML + "          <mso:button id='runReport' label='Trim' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='AppointmentColor3'      onAction='TrimSelection'/>" & vbNewLine
ribbonXML = ribbonXML + "        </mso:group>" & vbNewLine
ribbonXML = ribbonXML + "      </mso:tab>" & vbNewLine
ribbonXML = ribbonXML + "    </mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "  </mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "</mso:customUI>"

ribbonXML = Replace(ribbonXML, """", "")

Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile

End Sub

Private Sub Workbook_Deactivate()

Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String

hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"

ribbonXML = "<mso:customUI           xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">" & _
"<mso:ribbon></mso:ribbon></mso:customUI>"

Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile

End Sub

ブックを保存して再度開くことを忘れないでください。お役に立てれば!

于 2016-07-01T06:33:32.703 に答える
9

複数のアドインがリボンを変更しようとしたときに、Roi-KyiBryantのソリューションで問題が発生しました。また、仕事用のコンピューターに管理者アクセス権がないため、のインストールが除外されましたCustom UI Editor。したがって、私と同じボートに乗っている場合は、Excelのみを使用してリボンをカスタマイズする別の例を次に示します。私のソリューションはMicrosoftガイドから派生していることに注意してください。


  1. リボンをカスタマイズするExcelファイルを作成します。私の場合、複数のアドインがリボンとどのように相互作用できるかを示すために、2つの.xlamファイルとChart Tools.xlamを作成しました。Priveleged UDFs.xlam
  2. 作成したファイルごとに、任意のフォルダー名でフォルダーを作成します。
  3. 作成した各フォルダー内に、フォルダーを追加しcustomUIます_rels
  4. customUIフォルダ内にcustomUI.xmlファイルを作成します。このcustomUI.xmlファイルには、Excelファイルがリボンとどのように相互作用するかが詳しく説明されています。Microsoftガイドのパート2では、ファイル内の要素について説明していcustomUI.xmlます。

私のcustomUI.xmlファイルはChart Tools.xlam次のようになります

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:x="sao">
  <ribbon>
    <tabs>
      <tab idQ="x:chartToolsTab" label="Chart Tools">
        <group id="relativeChartMovementGroup" label="Relative Chart Movement" >
            <button id="moveChartWithRelativeLinksButton" label="Copy and Move" imageMso="ResultsPaneStartFindAndReplace" onAction="MoveChartWithRelativeLinksCallBack" visible="true" size="normal"/>
            <button id="moveChartToManySheetsWithRelativeLinksButton" label="Copy and Distribute" imageMso="OutlineDemoteToBodyText" onAction="MoveChartToManySheetsWithRelativeLinksCallBack" visible="true" size="normal"/>
        </group >
        <group id="chartDeletionGroup" label="Chart Deletion">
            <button id="deleteAllChartsInWorkbookSharingAnAddressButton" label="Delete Charts" imageMso="CancelRequest" onAction="DeleteAllChartsInWorkbookSharingAnAddressCallBack" visible="true" size="normal"/>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

私のcustomUI.xmlファイルはPriveleged UDFs.xlam次のようになります

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:x="sao">
  <ribbon>
    <tabs>
      <tab idQ="x:privelgedUDFsTab" label="Privelged UDFs">
        <group id="privelgedUDFsGroup" label="Toggle" >
            <button id="initialisePrivelegedUDFsButton" label="Activate" imageMso="TagMarkComplete" onAction="InitialisePrivelegedUDFsCallBack" visible="true" size="normal"/>
            <button id="deInitialisePrivelegedUDFsButton" label="De-Activate" imageMso="CancelRequest" onAction="DeInitialisePrivelegedUDFsCallBack" visible="true" size="normal"/>
        </group >
      </tab>
    </tabs>
  </ribbon>
</customUI>
  1. 手順1で作成したファイルごとに、.zipファイル名の末尾にaを付けます。私の場合、名前を、、に変更しChart Tools.xlamました。Chart Tools.xlam.zipPrivelged UDFs.xlamPriveleged UDFs.xlam.zip
  2. .zipファイルを開き、_relsフォルダーに移動します。手順3で作成し.relsたフォルダにファイルをコピーします。テキストエディタで各ファイルを編集します。Microsoftガイドから_rels .rels

最後の<Relationship>要素と終了 <Relationships>要素の間に、ドキュメントファイルとカスタマイズファイルの間に関係を作成する行を追加します。フォルダ名とファイル名を正しく指定してください。

<Relationship Type="http://schemas.microsoft.com/office/2006/
  relationships/ui/extensibility" Target="/customUI/customUI.xml" 
  Id="customUIRelID" />

私の.relsファイルはChart Tools.xlam次のようになります

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
        <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
        <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
        <Relationship Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="/customUI/customUI.xml" Id="chartToolsCustomUIRel" />
    </Relationships>

私の.relsファイルはPriveleged UDFs次のようになります。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
        <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
        <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
        <Relationship Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="/customUI/customUI.xml" Id="privelegedUDFsCustomUIRel" />
    </Relationships>
  1. .rels.zipファイルのファイルを.rels、前の手順で変更した1つまたは複数のファイルに置き換えます。
  2. 作成したフォルダをコピーして、ファイル.customUIのホームディレクトリに貼り付けます。.zip
  3. .zip作成したExcelファイルからファイル拡張子を削除します。
  4. ファイルを作成した場合.xlamは、Excelに戻って、Excelアドインにファイルを追加します。
  5. 該当する場合は、各アドインでコールバックを作成します。ステップ4ではonAction、ボタンにキーワードがあります。キーワードは、包含要素がトリガーされると、ExcelアプリケーションがキーワードonActionの直後に引用符で囲まれたサブルーチンをトリガーすることを示します。onActionこれはコールバックとして知られています。私の.xlamファイルにはCallBacks、コールバックサブルーチンを含めたというモジュールがあります。

コールバックモジュール

私のCallBacksモジュールはChart Tools.xlam次のようになります

Option Explicit

Public Sub MoveChartWithRelativeLinksCallBack(ByRef control As IRibbonControl)
  MoveChartWithRelativeLinks
End Sub

Public Sub MoveChartToManySheetsWithRelativeLinksCallBack(ByRef control As IRibbonControl)
  MoveChartToManySheetsWithRelativeLinks
End Sub

Public Sub DeleteAllChartsInWorkbookSharingAnAddressCallBack(ByRef control As IRibbonControl)
  DeleteAllChartsInWorkbookSharingAnAddress
End Sub

私のCallBacksモジュールはPriveleged UDFs.xlam次のようになります

オプション明示

Public Sub InitialisePrivelegedUDFsCallBack(ByRef control As IRibbonControl)
  ThisWorkbook.InitialisePrivelegedUDFs
End Sub

Public Sub DeInitialisePrivelegedUDFsCallBack(ByRef control As IRibbonControl)
  ThisWorkbook.DeInitialisePrivelegedUDFs
End Sub

要素が異なれば、コールバックサブルーチンのシグネチャも異なります。ボタンの場合、必要なサブルーチンパラメータはByRef control As IRibbonControlです。必要なコールバック署名に準拠していない場合、VBAプロジェクトのコンパイル中にエラーが発生します。Microsoftガイドのパート3では、すべてのコールバック署名を定義しています。


完成した例は次のようになります

完成品


いくつかの締めくくりのヒント

  1. アドインでリボン要素を共有する場合は、idQandxlmns:キーワードを使用します。私の例では、Chart Tools.xlamとのPriveleged UDFs.xlam両方が、とに等しい'sを持つ要素にアクセスできidQます。これを機能させるには、が必要です。ファイルの最初の行で名前空間を定義しました。Microsoftガイドの「FluentUIをカスタマイズする2つの方法」セクションに詳細が記載されています。x:chartToolsTabx:privelgedUDFsTabx:customUI.xml<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:x="sao">
  2. アドインでExcelに付属のリボン要素にアクセスする場合は、isMSOキーワードを使用します。Microsoftガイドの「FluentUIをカスタマイズする2つの方法」セクションに詳細が記載されています。
于 2019-02-16T02:46:22.507 に答える
2

これに対する別のアプローチは、このページからJanKarelPieterseの無料のOpenXMLクラスモジュールをダウンロードすることです。VBAを使用してOpenXMLファイルの要素を編集する

これをVBAプロジェクトに追加すると、Excelファイルを解凍し、VBAを使用してXMLを変更してから、クラスを使用してファイルを再圧縮できます。

于 2020-01-19T22:01:45.930 に答える
2

これは、Excel365で機能するシンプルなソリューションです。

最初にこのコードを空白のワークブックに入力します。

Option Explicit

Sub sbHelloWorld()
 MsgBox "Hello World!"
End Sub

これは、基本的なカスタムリボンのXMLです。メモ帳を使用してこのXMLを「rb_HelloWorld.txt」というファイルに貼り付け、保存してフォルダ「C:\ Users \ david \ AppData \ Local \ Microsoft\Office」にコピーしました。このフォルダは最初は非表示でした。隠す必要があります。

<mso:customUI      xmlns:mso='http://schemas.microsoft.com/office/2009/07/customui'>
    <mso:ribbon>
        <mso:qat/>
        <mso:tabs>
        <mso:tab idQ="mso:TabDrawInk" visible="false"/>
        <mso:tab id="mso_c1.2A492F1" label="New Tab">
            <mso:group id="mso_c2.2A492F1" label="New Group" autoScale="true">
                <mso:button id="sbHelloWorld" label="sbHelloWorld" imageMso="ListMacros" onAction="sbHelloWorld" visible="true"/>
            </mso:group>
        </mso:tab>
        </mso:tabs>
    </mso:ribbon>
</mso:customUI>

これらは、新しいリボンを所定の位置にコピーし、ブックの終了時にリボンを削除するために使用される2つのルーチンです。

Sub sbCopyFile()
 Dim sOfficeUIDir As String
 Dim sHWFile As String
 Dim sUIFile As String
 Dim sTest As String
 sOfficeUIDir = "C:\Users\david\AppData\Local\Microsoft\Office\"
 sHWFile = sOfficeUIDir & "rb_HelloWorld.txt"
 sUIFile = sOfficeUIDir & "Excel.officeUI"
 sTest = Dir(sHWFile)
 If Not sTest = "" Then
  FileCopy sHWFile, sUIFile
 End If
End Sub



Sub sbDeleteFile()
 Dim sOfficeUIDir As String
 Dim sUIFile As String
 Dim sTest As String
 sOfficeUIDir = "C:\Users\david\AppData\Local\Microsoft\Office\"
 sUIFile = sOfficeUIDir & "Excel.officeUI"
 sTest = Dir(sUIFile)
 If Not sTest = "" Then
  Kill (sUIFile)
 End If
End Sub

カスタムリボンは、組み込みのプロシージャWorkbook_ActivateおよびWorkbook_Deactivateを使用して追加および削除できます。

Private Sub Workbook_Activate()
 Call sbCopyFile
End Sub

Private Sub Workbook_Deactivate()
 Call sbDeleteFile
End Sub

ルーチンsbHelloWorld()は、カスタムリボンのボタンから呼び出されます。

于 2021-05-09T18:05:24.157 に答える