Top > OOobbs2 > 2

OOobbs2/2 Edit

  • サマリ: メニューから BasicIDE の直接開く CommandURL
  • 環境: General
  • 状態: 投稿
  • 投稿者: はにゃ??
  • 投稿日: 2006-10-02 (月) 18:25:20

質問 Edit

書くところがないのでここに

わざわざツールメニューから編集するモジュールを選択して Basic IDE を開くのがめんどうなので、直接開くメニューを追加する。

なぜか Calc のヘルプメニューに BasicIDE として追加するマクロ。コマンドとしては ".uno:BasicIDEAppear" を使う。

Sub add_basicide_menu
  sToolbar = "private:resource/menubar/menubar"
  Dim oImageManager As Object
  oModuleCfgMgrSupplier = createUnoService(_
      "com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
  oModuleCfgMgr = oModuleCfgMgrSupplier.getUIConfigurationManager(_
      "com.sun.star.sheet.SpreadsheetDocument" )
  
  oToolbarSetting = oModuleCfgMgr.getSettings(sToolbar,true)

  sMenu1 = ".uno:BasicIDEAppear"
  sMenu1Label = "BasicIDE"
  aMenu1 = CreateMenuItem( sMenu1, sMenu1Label )

  For i = 0 To oToolbarSetting.getCount() -1
    If GetProperty("CommandURL", oToolbarSetting.getByIndex(i)) = ".uno:HelpMenu" Then
      oMenu = GetProperty( "ItemDescriptorContainer", oToolbarSetting.getByIndex(i) )
    End If
  Next i

  oMenu.insertByIndex( oMenu.getCount(), aMenu1 )

  oModuleCfgMgr.replaceSettings(sToolbar, oToolbarSetting)
  oModuleCfgMgr.store()
End Sub


Function GetProperty( sName As String, aValues )
For i = 0 To UBound(aValues())
  If aValues(i).Name = sName Then
    GetProperty = aValues(i).Value
  End If
Next i
End Function


Function CreateMenuItem( _
    sCommand As String, sLabel As String ) as Variant
Dim aMenuMember(3) As New com.sun.star.beans.PropertyValue

  aMenuMember(0).Name = "CommandURL"
  aMenuMember(0).Value = sCommand
  aMenuMember(1).Name = "HelpURL"
  aMenuMember(1).Value = "" 'sHelpURL
  aMenuMember(2).Name = "Label"
  aMenuMember(2).Value = sLabel
  aMenuMember(3).Name = "Type"
  aMenuMember(3).Value = 0
  
  CreateMenuItem = aMenuMember()
End Function

回答 Edit


感想,コメント,メモ Edit



Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes