RunningCSharp

MS系開発者による、雑多な記事。記事は所属企業とは関係のない、個人の見解です。

【C#】Wordファイルをパスワード付きで保存

まず、Wordファイルを扱うにはプロジェクトにて以下のCOMライブラリを参照します。

f:id:ys-soniclab:20190923173345p:plain
COMライブラリの参照

下記コードではコンソールアプリケーションにて、「C:\Doc\test.docx」を基に、パスワード付きファイル「C:\Doc\test2.docx」を保存します。

using Microsoft.Office.Interop.Word;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            //Wordアプリケーション生成
            Application app = new Application();
            app.Visible = false;
            //ドキュメントオープン
            Document doc = app.Documents.Open(@"C:\Doc\test.docx");
            //ドキュメント保存(パスワードを指定)
            doc.SaveAs2(FileName:@"C:\Doc\test2.docx",Password:"testpass");
            //終了処理
            doc.Close();
            doc = null;
            app.Quit();
            app = null;
        }
    }
}

f:id:ys-soniclab:20190923173748p:plain
コンソールアプリケーション実行前

f:id:ys-soniclab:20190923173812p:plain
コンソールアプリケーション実行後

f:id:ys-soniclab:20190923173837p:plain
test2.docxを開いた際、パスワードが要求される