2017-04-10 12 views
0

C#で使用されているPowerPoint Interopで、通常のスライドを選択するのと同じようにプログラムでスライドマスタページを表示することは可能ですか?マスターページのIDを指定するか、それをテンプレートとして持つスライドのIDを指定します。PowerPoint Interopでスライドマスタページを選択

私はスライドマスタにビューを切り替えるには、管理:

_pptApplication.ActiveWindow.ViewType = PpViewType.ppViewMasterThumbnails; 

私は最初のスライドを選択し、マスター・ビューに切り替えてみましたが、この命令は常にビューに最初のスライドマスターページを置き、ありません選択されたスライドに関連付けられている

同様に、これがノート、配布資料およびそのマスターで可能かどうかを知りたいと思います。

答えて

1

既に知っているように.ViewTypeを設定するだけでなく、CustomLayoutオブジェクトで.Select()メソッドを使用する必要があります。

はここで2つの例です:私はわからなかった、

using NetOffice.OfficeApi.Enums; 
using NetOffice.PowerPointApi.Enums; 
using System; 
using PowerPoint = NetOffice.PowerPointApi; 

namespace ExportSlides 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      using (var app = PowerPoint.Application.GetActiveInstance()) 
      { 
       SelectSlideMasterLayoutOfActiveSlide(app); 
       ActiveSlideMasterLayoutByIndex(app.ActivePresentation, 4); 
      } 
     } 

     private static void ActiveSlideMasterLayoutByIndex(PowerPoint.Presentation activePresentation, int customLayoutIndex) 
     { 
      activePresentation.Windows[1].ViewType = PpViewType.ppViewSlideMaster; //PpViewType.ppViewMasterThumbnails doesn't work for me for some reason 
      activePresentation.SlideMaster.CustomLayouts[customLayoutIndex].Select(); 
     } 

     private static void SelectSlideMasterLayoutOfActiveSlide(PowerPoint.Application app) 
     { 
      var activeWindow = app.ActiveWindow; 

      var slideObj = activeWindow.View.Slide; 

      if (slideObj.GetType() == typeof(PowerPoint.Slide)) 
      { 
       var slide = (PowerPoint.Slide)slideObj; 

       activeWindow.ViewType = PpViewType.ppViewSlideMaster; //PpViewType.ppViewMasterThumbnails doesn't work for me for some reason 

       slide.CustomLayout.Select(); 

      } 
     } 
    } 
} 
+0

おかげ 'CustomLayout'は、このための鍵でした。しかし、私はこれを試してみましたが、 'slideObj.GetType()== typeof(PowerPoint.Slide)'を比較すると動作しませんでした。代わりに 'activeWindow.View.Slide'を' Slide'にキャストし、出来た。 –

+0

もう1つの質問:インデックスで選択すると、最初のスライドマスターページを選択できないことに気付きました。これを達成するための同様の方法はありますか? –

+0

ViewTypeを選択すると自動的にそこに着くと思いますが、正しくリコールすれば、値を別のものに設定して戻ってみてください...その作業は? – Jbjstam

関連する問題