んもー!Microsoftちゃんったらー! あはははは!!!(右手をグーにしながら

Microsoft Word で現在の表示モードが「アウトラインモード」か確認したーい! (すイエんサーのノリで

ということで、オブジェクトブラウザからソレっぽいものを検索したところ、Microsoft.Office.Interop.Word.View にプロパティとして Type があり、型が WdViewType なるもの。

WdViewType の列挙メンバは

  • wdMasterView
  • wdNormalView
  • wdOutlineView
  • wdPrintPreview
  • wdPrintView
  • wdReadingView
  • wdWebView

うん、コレしかないじゃないですか! ってことで、以下のようなコード書いてみました。

object    first         = 1; // なんで↓の第1引数が object 取るわ、ref だわなのよコレ
Word.View view          = hDoc.Windows.get_Item(ref first).View;
bool      isOutlineMode = (view.Type == Microsoft.Office.Interop.Word.WdViewType.wdOutlineView);

コレでばっちり! パーフェクトだよボブ! …ってことで、いざアウトライン表示にして、このコードを実行してみたらですね… isOutlineMode が false なんですよ。 なん…だと…

調べてみるとアウトライン表示でも、view.Type == wdMasterView な事が判明…って何でやねん! なんで view が Outline なのに wdOutlineView が取れないねん!! → ぐぐる








Type プロパティは、現在の表示モードがアウトライン表示またはグループ文書表示であるすべての文書の wdMasterView を取得します。あらかじめコードで明示的に設定されていない限り、現在の表示モードで wdOutlineView が取得されることはありません

現在の文書がアウトライン表示かどうかを確認するには、Type プロパティおよび Subdocuments コレクションの Count プロパティを使用します。Type プロパティで wdOutlineView または wdMasterView が取得され、Count プロパティで 0 (ゼロ) が取得された場合、文書はアウトライン表示です。

View.Type Property (Microsoft.Office.Interop.Word) | Microsoft Docs

●イガー! ジェノサァァイド!!




Office開発は鬼門。