【入門編】Application.CommandBarsとUI制御によるVisioのキオスク(全画面閲覧専用)モード化 – Visio VBA解析バイブル

スポンサーリンク

Visioを「最強の閲覧専用モニター」に変える:UI完全制御の極意

こんにちは。現場の自動化を極めるエンジニアです。

Visioといえば図面作成ツールですが、実は「動的な情報を表示する最強のダッシュボード」としてのポテンシャルを秘めていることをご存知でしょうか。工場の生産管理画面や、オフィスの状況モニターとしてVisioを「全画面表示(キオスクモード)」で運用したいという要望は、現場の自動化を志すエンジニアにとって一つの通過儀礼です。

今回は、VisioのUIをVBAで完全に支配し、閲覧専用の「美しい盤面」を作り上げる手法を伝授します。

1. Visioオブジェクトモデルの地図を把握する

VBAでUIを制御する際、まず理解すべきはVisioの「階層構造」です。

  • Application: Visioというアプリそのもの(頂点)
  • Window: 画面上の表示領域(リボン、スクロールバー、ステータスバーなど)
  • Document/Page: ファイルと図面ページ
  • Shape: 図面上に配置されたオブジェクト

今回私たちが操作するのは、主に `Application.ActiveWindow` です。ここを制御することで、Visioの外観を自由自在に操ることができます。

2. 実装コード:キオスクモードへの変身

以下のコードは、Visioを「閲覧専用」にするための魔法の呪文です。標準モジュールに貼り付けて実行してみてください。

‘ Visioをキオスクモード(全画面表示)にするための制御コード
Public Sub EnableKioskMode()
Dim win As Visio.Window
Set win = Application.ActiveWindow

‘ 1. リボンやステータスバーを隠して没入感を高める
‘ ShowNavigationPane: ページ一覧を表示するかどうか
‘ ShowStatusBar: 下部のステータスバーを隠す
‘ ShowRulers: ルーラー(定規)を隠す

With win
.ShowNavigationPane = False
.ShowStatusBar = False
.ShowRulers = False
.ShowGrid = False
.ShowGuides = False

‘ 2. フルスクリーン表示を実行
‘ Application.FullScreen = True にするとリボンも消えます
Application.FullScreen = True
End With

MsgBox “キオスクモードを起動しました。Escキーで解除可能です。”
End Sub

‘ 元に戻すためのコード
Public Sub DisableKioskMode()
Application.FullScreen = False

With Application.ActiveWindow
.ShowNavigationPane = True
.ShowStatusBar = True
.ShowRulers = True
End With
End Sub

なぜこのコードが重要なのか?

「マクロの記録」では、こうしたウィンドウ設定の詳細までは記録されません。`Application`レベルと`Window`レベルのプロパティを理解して初めて、ユーザーに「これはツールではなく、一つのシステムだ」と錯覚させるような、クリーンなUIを提供できるのです。

3. 陥りやすい罠と「プロの知見」

初心者の方が必ずと言っていいほど直面するのが、「エラー発生時にUIが戻らなくなる」という問題です。キオスクモード中にエラーでVBAが停止すると、メニューが消えたままになり、操作不能になります。

対策:エラーハンドリングの徹底

必ず `On Error GoTo` を活用し、どのような状況でもUIを復旧させる出口を用意してください。

Public Sub SafeKioskMode()
On Error GoTo ErrorHandler

‘ 処理を実行
Application.FullScreen = True
‘ …

Exit Sub

ErrorHandler:
‘ 万が一の時もUIを戻す
Application.FullScreen = False
MsgBox “予期せぬエラーが発生しましたが、UIを正常な状態に戻しました。”
End Sub

4. さらなる高みへ:CommandBarsの制御

さらに高度な制御を行いたい場合、かつては `CommandBars` を使用してメニューバーを直接操作していましたが、近年のVisio(リボンUI)では `Application.ShowToolbar``FullScreen` プロパティを組み合わせるのが王道です。

もし「特定のボタンだけを残したい」といった高度な制御が必要な場合は、XML(CustomUI)を用いたリボンカスタマイズが必要になります。しかし、まずは上記コードで「表示領域を最大化する」という基本を完璧にマスターしましょう。

最後に:先輩からのアドバイス

Visio VBAは、単に「図を書く」ための道具ではありません。「情報を可視化し、現場の状況をリアルタイムに伝えるインターフェース」を構築するための最強のエンジンです。

UIを隠すことで、ユーザーの注意力を「図面そのもの」に向けさせることができます。これこそが、業務自動化エンジニアが追求すべき「体験設計」です。

ここをクリアできれば、次はデータ連携(ExcelやSQL Serverからのリアルタイム更新)に挑戦してみてください。あなたのVisioは、ただの図面ツールから、現場になくてはならない「指揮統制パネル」へと進化するはずです。

何か詰まったら、いつでも戻ってきてください。また次のステップでお会いしましょう。

タイトルとURLをコピーしました