C#でPowerPoint(其の弐)ノートの抽出

今回は、PowerPointファイルから、各スライドのノートの内容を抽出します。

/// <summary>
/// スライドのノートをページごとに取得します。
/// </summary>
/// <param name="file">PowerPointファイル名</param>
/// <returns>ページごとのノート</returns>
public List<string> getSlideNotes( string file )
{
    List<string> notes = new List<string>();

    Microsoft.Office.Interop.PowerPoint.Application app = null;
    Microsoft.Office.Interop.PowerPoint.Presentation ppt = null;

    try {
        // PPTのインスタンス作成
        app = new Microsoft.Office.Interop.PowerPoint.Application();

        // ファイルオープン
        ppt = app.Presentations.Open(
            file,
            Microsoft.Office.Core.MsoTriState.msoTrue,    // 読み取り専用
            Microsoft.Office.Core.MsoTriState.msoTrue,
            Microsoft.Office.Core.MsoTriState.msoFalse
       );

        string txt;
        // スライドのインデックスは1から
        for ( int i = 1; i <= ppt.Slides.Count; i++ ) {
            Debug.WriteLine("slide: " + i.ToString());

            txt = ppt.Slides[i].NotesPage.Shapes.Placeholders[2].TextFrame.TextRange.Text;
            notes.Add(txt);
        }
    }
    finally {
        // ファイルを閉じる
        if ( ppt != null ) {
            ppt.Close();
            ppt = null;
        }

        // PPTを閉じる
        if ( app != null ) {
            app.Quit();
            app = null;
        }
    }

    return notes;
}
The following two tabs change content below.

taira

Sofrware Engineer.

Comments are closed.