リボン関連

PowerShellからリボンUIを呼ぶ方法

下記記事で簡易的なUIとして手軽なHTAを使いました。

PowerShellでGUIアプリを作る場合はどうするのだろう?と調べたところ、すぐにその方法が見つかりました。

なるほど。Windows FormsかWPFを使えば良いわけですね。
どうせ試すならリボンUIで実装してみよう!というわけで、さっそくコードを書いてみました。

Add-Type -AssemblyName PresentationFramework
Add-Type -Assembly System.Windows.Forms
Add-Type -AssemblyName System.Windows.Controls.Ribbon

[xml]$xaml = @'
<RibbonWindow 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="MainWindow" Height="300" Width="300"
>
  <Ribbon>
    <Ribbon.ApplicationMenu>
      <RibbonApplicationMenu Visibility="Collapsed" />
    </Ribbon.ApplicationMenu>
    <RibbonTab Header="Tab1">
      <RibbonGroup Name="grp1" Header="Group1">
        <RibbonButton Name="btnSample" Label="Sample" FontSize="11pt" />
        <RibbonButton Name="btnExit" Label="Exit" FontSize="11pt" />
      </RibbonGroup>
    </RibbonTab>
  </Ribbon>
</RibbonWindow>
'@

$reader = (New-Object System.Xml.XmlNodeReader $xaml)
$window = [Windows.Markup.XamlReader]::Load($reader)
$btnSample = $window.FindName("btnSample")
$btnSample.add_Click({
  [System.Windows.Forms.MessageBox]::Show("Hello world", "Sample")
})
$btnExit = $window.FindName("btnExit")
$btnExit.add_Click({
  $window.Close()
})
$window.ShowDialog() | Out-Null

PowerShell_WPF_Ribbon_01

Officeのリボン・カスタマイズに慣れていると、XAMLは結構身近に感じます。
上記参考サイトを見ながら何となくコードが書けました。
スクリプト実行時にPowerShellのコンソールが出てくるのが気になりますが、目的は達したのでまあ良しとします。

PowerShellからNetOfficeを使ってWordやPowerPointを操作する方法前のページ

【まほうのルミティア】ルミティアステッキ2が発売開始されたよ。次のページ

関連記事

  1. Office関連

    Re: 【Wordマクロ】Word起動時に、前回終了時に開いていたファイルを表示

    Word MVPの新田さんがブログで面白い記事を書かれていました。…

  2. Excel

    [リボン・カスタマイズ]グループの表示・非表示をユーザーフォームのチェックボックスで切り替える。

    先日書いた記事に下記コメントをいただきました。複数の「グループ…

  3. リボン関連

    まばたきするリボン

    小ネタです。ボタンをクリックするとリボンがまばたきします。 (…

  4. Office関連

    Office 2016のコントロールIDリストが公開されました。

    昨年の秋にリリースされたOffice 2016。そのコントロールI…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP