2022年9月9日金曜日

ExcelやPowerPointで右クリックにメニューを追加する

 ExcelやPowerPointで右クリックにメニューを追加する方法です。


ここに来るより下記のサイトを参照したほうがはやいです。

「リボンの君とSuyamaSoft」

http://suyamasoft.blue.coocan.jp/PowerPoint/Ribbon/ContextMenuID/index.html



例えばエクセルの場合

(1)引数付きのマクロを作成しておく

test.xlsm

標準モジュール

Sub com1(a)

    'Msgbox "Hello World!"

End Sub


IDで処理を分けたい場合は

Sub com1(a)

    Call com2(a.ID)

End Sub


(2)customUI14.xmlを作成しておく

====ここから====

<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<contextMenus>
    <contextMenu idMso="ContextMenuCell">
    <menu id ="m1" label="mtool" insertBeforeMso ="Cut" imageMso ="Camera" >
        <button id="Btn1" label="com1" onAction="com1"  />
    </menu>
    </contextMenu>

    <contextMenu idMso="ContextMenuShape">
    <menu id ="m3" label="mtool" insertBeforeMso ="Cut" imageMso ="Camera" >
        <button id="Btn3" label="com1" onAction="com1"  />
    </menu>

      <menuSeparator id="mySep1" />
      <menu idMso="ObjectAlignMenu" visible="true" />
      <gallery idMso="ObjectRotateGallery" visible="true" />
    </contextMenu>

    <contextMenu idMso="ContextMenuObjectsGroup">
    <menu id ="m4" label="mtool" insertBeforeMso ="Cut" imageMso ="Camera" >
        <button id="Btn4" label="com1" onAction="com1"  />
    </menu>

      <menuSeparator id="mySep2" />
      <menu idMso="ObjectAlignMenu" visible="true" />
      <gallery idMso="ObjectRotateGallery" visible="true" />
    </contextMenu>
</contextMenus>
</customUI>

====ここまで====

idMsoはpptだと

"ContextMenuFrame" 

などがあるようです。


(3)エクセルの拡張子をzipに変更

直下にcustomUIフォルダを作成してcustomUI14.xmlを置く


_relsフォルダの.relsに下記を追加

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

(4)拡張子を.xlsmに戻す


以上




==================

pptのcontextmenu一覧


"Shapes"(図形)

"Slider Sorter"(スライド一覧表示)

"Thumbnails"(縮小表示)

"Slide Gap"(スライドの間隔)

"Notes Pane"(ノート ペイン)

"Outliner"(アウトラインの作成)

"Slide Show"(スライド ショー)

"Slide Show Short Popup"(スライド ショー ショート ポップアップ)

"Nondefault Drag and Drop"(ドラッグ アンド ドロップ (既定以外))

"Curve"(曲線)

"OLE Object"(OLE オブジェクト)

"Connector"(コネクタ)

"WordArt Context Menu"(ワードアート ショートカット メニュー)

"Rotate Mode"(回転モード)

"Curve Segment"(線分を曲げる)

"Curve Node"(結節点を曲げる)

"ActiveX Control"(ActiveX コントロール)

"Spelling"(スペル チェック)

"Pictures Context Menu"(図ショートカット メニュー)

"Canvas Popup"(Canvas Popup)

"Script Anchor Popup"(スクリプト アンカーのポップアップ)

"Frames"(レイアウト枠)

"Notes View Slide"(ノート表示スライド)

"Slide Show Browse"(スライド ショーのブラウズ)

"Hyperlinked Object"(ハイパーリンクされたオブジェクト)

"Tables"(テーブル)

"Table Cells"(テーブル : セル)

"Organization Chart Popup"(Organization Chart Popup)

"Diagram"(ダイアグラム)

"OrgChart Text Edit PopUp"(OrgChart Text Edit PopUp)

"Comment Popup"(コメント ポップアップ)

"Slide View Ink Annotation Popup"(スライド ビューのインク注釈ポップアップ)

"Revision Marker Popup"(Revision Marker Popup)

"System"(システム)


以下は下記サイトから引用

ContextMenuID - リボンの君とSuyamaSoft

http://suyamasoft.blue.coocan.jp/PowerPoint/Ribbon/ContextMenuID/index.html


ContextMenuActiveXControl

ContextMenuAudio

ContextMenuChartArea

ContextMenuChartAxis

ContextMenuChartAxisTitle

ContextMenuChartBackWall

ContextMenuChartDataLabel

ContextMenuChartDataLabels

ContextMenuChartDataPoint

ContextMenuChartDataSeries

ContextMenuChartDataTable

ContextMenuChartDisplayUnit

ContextMenuChartDownBars

ContextMenuChartDropLines

ContextMenuChartErrorBars

ContextMenuChartFloor

ContextMenuChartGridlines

ContextMenuChartHighLowLine

ContextMenuChartLeaderLines

ContextMenuChartLegend

ContextMenuChartLegendEntry

ContextMenuChartPlotArea

ContextMenuChartSeriesLine

ContextMenuChartSideWall

ContextMenuChartTitle

ContextMenuChartTrendline

ContextMenuChartTrendlineLabel

ContextMenuChartUpBars

ContextMenuChartWalls

ContextMenuCommentMarker

ContextMenuCurve

ContextMenuDrawnObject

ContextMenuEndShow

ContextMenuFrame

ContextMenuGraphicOleClassic

ContextMenuGraphicsCompatibility

ContextMenuGuide

ContextMenuInk

ContextMenuLabelSection

ContextMenuMotionPath

ContextMenuNotesEditText

ContextMenuObjectEditPoint

ContextMenuObjectEditSegment

ContextMenuObjectsGroup

ContextMenuOfficePreviewHandlerPowerPoint

ContextMenuPathPoint

ContextMenuPathSegment

ContextMenuPicture

ContextMenuPodiumMonitorSettings

ContextMenuRevision

ContextMenuRightDragDrop

ContextMenuShape

ContextMenuShapeConnector

ContextMenuShapeFreeform

ContextMenuShowBrowse

ContextMenuShowHyperlink

ContextMenuShowPointerOptions

ContextMenuSlideGap

ContextMenuSlideShow

ContextMenuSlideSorter

ContextMenuSlideSync

ContextMenuSmartArtBackground

ContextMenuSmartArtContentPane

ContextMenuSmartArtEdit1DShape

ContextMenuSmartArtEdit1DShapeText

ContextMenuSmartArtEditSmartArt

ContextMenuSmartArtEditText

ContextMenuSpell

ContextMenuTable

ContextMenuTableWhole

ContextMenuTextEdit

ContextMenuTextEditOutline

ContextMenuThumbnail

ContextMenuVideo




0 件のコメント:

コメントを投稿