フッターコンテンツにスキップ
EXCEL ツール

C#でテンプレートからPowerPointを作成する方法

PowerPointプレゼンテーションは、商業、教育、およびその他の分野で情報を効率的に伝達するための標準であり続けています。 PowerPointはフレキシブルなツールであり、授業を教える、チームにプロジェクト更新を行う、または潜在的な投資家にプレゼンテーションを行うなどの状況でコミュニケーションの努力を改善できます。 しかし、一からプレゼンテーションを作成するには多くの時間がかかる場合があり、デザインの効率と一貫性が必ずしも希望通りになるとは限りません。 ここで役立つのがPowerPointテンプレートで、テーマとレイアウトがあらかじめ用意されたスライドが提供され、要件に合わせて変更できます。

role="alert">Iron Softwareからの.NET PowerPointライブラリであるIronPPTの紹介
IronPPTはPPTXファイルをシームレスにロードおよび保存します。Microsoft Officeは不要です。どの.NETアプリケーションでもスライド、テキスト、図形、画像を自動化するのに最適です。IronPPTを今すぐ始めましょう!

この記事では、C#を使用してテンプレートからPowerPointを作成する方法を見ていきます。 Microsoftの[PowerPoint Interopライブラリ](https://learn.microsoft.com/en-us/previous-versions/office/office-12/ff764034(v=office.12)を利用することで、手順を迅速化し、簡単に完成度の高いプレゼンテーションを作成できるようにします

C#でテンプレートからPowerPointを作成する方法

  1. 新しいC#プロジェクトを作成します。
  2. 新しいインスタンスでPowerPointプログラムを起動します。
  3. テンプレートから新しく作成されたプレゼンテーションにスライドを挿入します。
  4. 新しいファイルを作成し、プレゼンテーションを保存します。
  5. PowerPointプログラムを閉じ、プレゼンテーションを終了します。

テンプレートからのPowerPointの理解

コードに入る前に、プログラムでPowerPointプレゼンテーションを書く基本的な考え方を再確認しましょう。 MicrosoftのPowerPoint Interopライブラリを使用すると、開発者はC#などの.NET言語を使ってPowerPointアプリケーションとやり取りできます。 このパッケージは、スライドの作成、テキストの追加、画像の挿入、およびフォーマットの適用を含む多くの機能を公開しています。

新しいVisual Studioプロジェクトを作成

新しいVisual Studioプロジェクトを開始するには、以下の手順に従ってください。

Visual Studioアプリケーションを起動します。 Visual Studioを使用する前に、コンピュータにインストールされていることを確認してください。

ファイルを選択し、新規を選び、最後にプロジェクトを選びます。

C#でテンプレートからPowerPointを作成する方法:図1 - Visual Studioで新しいプロジェクトを作成します。 C#言語とコンソールアプリまたはコンソールアプリ(.NET Core)プロジェクトを選択します。

「新しいプロジェクトの作成」ボックスの左側から、好みのプログラミング言語(例:C#)を選びます。 次に、利用可能なプロジェクトテンプレートのリストから「コンソールアプリ」または「コンソールアプリ(.NET Core)」テンプレートを選びます。 プロジェクトに名前を付けるために「名前」フィールドに入力してください。

C#でテンプレートからPowerPointを作成する方法:図2 - コンソールアプリプロジェクトを構成する:プロジェクト名と場所を追加します。

プロジェクトの保存場所を決定します。 新しいコンソールアプリケーションプロジェクトの作業を開始するには、「次へ」をクリックします。 次に、適切な.NET Frameworkを選び、「作成」をクリックします。

C#でテンプレートからPowerPointを作成する方法:図3 - 適切な.NET Frameworkを選択し、「作成」をクリックします。

新しく確立されたC#プロジェクトで、Microsoft PowerPoint Interopライブラリへの参照を追加します。 このライブラリにより、C#コードとPowerPointアプリケーションとの通信が可能になり、プレゼンテーションの開発と対話が容易になります。

C#を使用してテンプレートからPowerPointを作成

新しいプレゼンテーションの基礎を形成するPowerPointテンプレートをロードすることが最初のステップです。 テンプレートには、事前に定義されたスライドレイアウト、テーマ、およびコンテンツプレースホルダーがしばしば見られます。 Microsoft.Office.PowerPoint.Interopライブラリの関数は、C#ソースコード内でテンプレートファイルを開き、その内容を取得することを可能にします。

using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core; // Make sure to include this for MsoTriState

class Program
{
    static void Main(string[] args)
    {
        // Initialize PowerPoint application
        PowerPoint.Application powerpointApp = new PowerPoint.Application();

        // Open an existing PowerPoint file
        PowerPoint.Presentation presentation = powerpointApp.Presentations.Open(
            @"C:\Path\To\Existing\output.pptx", 
            MsoTriState.msoFalse, 
            MsoTriState.msoFalse, 
            MsoTriState.msoTrue);

        // Insert slides from a template file into the presentation
        presentation.Slides.InsertFromFile(
            @"C:\Path\To\External\demo.pptx", 
            presentation.Slides.Count + 1, 
            1, 
            0);

        // Save the updated presentation
        presentation.Save();

        // Close the presentation and quit PowerPoint application
        presentation.Close();
        powerpointApp.Quit();
    }
}
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core; // Make sure to include this for MsoTriState

class Program
{
    static void Main(string[] args)
    {
        // Initialize PowerPoint application
        PowerPoint.Application powerpointApp = new PowerPoint.Application();

        // Open an existing PowerPoint file
        PowerPoint.Presentation presentation = powerpointApp.Presentations.Open(
            @"C:\Path\To\Existing\output.pptx", 
            MsoTriState.msoFalse, 
            MsoTriState.msoFalse, 
            MsoTriState.msoTrue);

        // Insert slides from a template file into the presentation
        presentation.Slides.InsertFromFile(
            @"C:\Path\To\External\demo.pptx", 
            presentation.Slides.Count + 1, 
            1, 
            0);

        // Save the updated presentation
        presentation.Save();

        // Close the presentation and quit PowerPoint application
        presentation.Close();
        powerpointApp.Quit();
    }
}
Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
Imports Microsoft.Office.Core ' Make sure to include this for MsoTriState

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize PowerPoint application
		Dim powerpointApp As New PowerPoint.Application()

		' Open an existing PowerPoint file
		Dim presentation As PowerPoint.Presentation = powerpointApp.Presentations.Open("C:\Path\To\Existing\output.pptx", MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoTrue)

		' Insert slides from a template file into the presentation
		presentation.Slides.InsertFromFile("C:\Path\To\External\demo.pptx", presentation.Slides.Count + 1, 1, 0)

		' Save the updated presentation
		presentation.Save()

		' Close the presentation and quit PowerPoint application
		presentation.Close()
		powerpointApp.Quit()
	End Sub
End Class
$vbLabelText   $csharpLabel

テンプレートをロードした後、そのレイアウトを使用して新しいプレゼンテーションを作成します。 PowerPointプレゼンテーションファイル(output.pptx)を使用し、私たちの素材のキャンバスとして機能するPowerPointプレゼンテーションオブジェクトを作成するのに役立ちます。 このプレゼンテーションでは、テンプレートのレイアウトとテーマが引き継がれ、統一されたビジュアルスタイルが与えられます。

C#でテンプレートからPowerPointを作成する方法:図4 - あなたのプレゼンテーションに含めたいスライドを含む2番目のPowerPointファイル(demo.pptx)

presentation.Slides.InsertFromFile()メソッドは4つのパラメータを取ります:FileNameIndexSlideStart、およびSlideEnd

  • プレゼンテーションに含めたいスライドを含むPowerPointファイルへのパスが最初のパラメータ(demo.pptx)として指定されます。
  • 次のパラメータはスライドを挿入したい先のプレゼンテーションの位置です。
  • その他の2つのパラメータはオプションです。 これらのパラメータにより、開始および終了スライドインデックスを指定できます。 特定の範囲にあるスライドを抽出する必要がある場合、これらのパラメータを使用することができます。

InsertFromFile()メソッドでスライドを挿入した後、presentation.Save()メソッドを使用してプレゼンテーションを保存することができます。 保存した後、Close()メソッドを使用してPowerPointプログラムを閉じてから、Quit()メソッドでプレゼンテーションを終了します。 この方法により、外部ファイルからスライドを動的に追加して、PowerPointプレゼンテーションの内容と柔軟性を向上させることができます。

出力

C#でテンプレートからPowerPointを作成する方法:図5 - 出力:output.pptx

IronXL

Excelファイルを操作するための機能豊富なC#ライブラリであるIronXLを紹介します。 Iron SoftwareのIronXLは、Excel文書を動的に作成、埋め込み、フォーマットするための幅広いツールを提供します。 その使いやすいAPIと幅広いドキュメントにより、IronXLはC#におけるExcelとの対話を簡素化し、Excel関連のタスクに対して開発者にシームレスな体験を提供します。

IronXLの特徴

  • 広範なExcelサポート:IronXLはCSV、XLS、およびXLSXファイル形式など、様々なExcel形式で多数のExcelファイルを開いて操作できます。 IronXLの強力な解析機能により、開発者は古いExcelファイルと最新のExcelファイルの両方を利用して、既存のExcelファイルからデータを効果的に抽出できます。
  • 高速:IronXLはパフォーマンスの最適化を優先します。 効率的なアルゴリズムとメモリ管理戦略を採用することで、Excelのインタラクションは信頼性が高く迅速です。 IronXLはメモリのオーバーヘッドを低減し、処理速度を最適化しているため、開発者は大規模なExcelファイルを簡単に管理できます。
  • シンプルでユーザーフレンドリーなAPI:IronXLのユーザーフレンドリーなAPIは、すべてのスキルレベルの開発者に適しています。 IronXLは、Excelファイルの読み込み、Excelワークブックへのアクセス、セルのデータの取得方法を提供することで、C#開発者の学習曲線を緩和し、既存ファイルの作成と読み取り手続きを迅速化します。

IronXLのドキュメントについてもっと知りたい場合はこちらを参照してください。

IronXLのインストール

IronXLをインストールするには、次の手順の指示とコマンドを使用してください:

Visual Studioで、[ツール] -> [NuGetパッケージマネージャー] -> [パッケージマネージャーコンソール]に移動します。

パッケージマネージャーのコンソールタブに次のコマンドを入力します:

Install-Package IronXL.Excel

IronXLパッケージが現在のプロジェクトにダウンロードおよびインストールされた後、使用可能になります。

IronXLを使用してExcelを作成

次に、IronXLを使用してC#でExcelドキュメントにデータを書き込む方法を示す具体的なコードサンプルを見てみましょう。 新しいExcelワークブックを起動し、ワークシートにデータを埋め込み、情報をファイルに保存する手順を説明します:

using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Create a new WorkBook object
        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);

        // Add a new WorkSheet to the workbook
        WorkSheet workSheet = workBook.CreateWorkSheet("Sheet1");

        // Define sample data
        string[,] data = {
            { "Name", "Age", "City" },
            { "Superman", "35", "Metropolis" },
            { "Batman", "34", "Gotham City" },
            { "Flash", "30", "Central City" }
        };

        // Populate the worksheet with data
        for (int row = 0; row < data.GetLength(0); row++)
        {
            for (int col = 0; col < data.GetLength(1); col++)
            {
                workSheet.SetCellValue(row, col, data[row, col]);
            }
        }

        // Save the workbook to a .xlsx file
        workBook.SaveAs("Demo.xlsx");

        // Close the workbook
        workBook.Close();
    }
}
using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Create a new WorkBook object
        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);

        // Add a new WorkSheet to the workbook
        WorkSheet workSheet = workBook.CreateWorkSheet("Sheet1");

        // Define sample data
        string[,] data = {
            { "Name", "Age", "City" },
            { "Superman", "35", "Metropolis" },
            { "Batman", "34", "Gotham City" },
            { "Flash", "30", "Central City" }
        };

        // Populate the worksheet with data
        for (int row = 0; row < data.GetLength(0); row++)
        {
            for (int col = 0; col < data.GetLength(1); col++)
            {
                workSheet.SetCellValue(row, col, data[row, col]);
            }
        }

        // Save the workbook to a .xlsx file
        workBook.SaveAs("Demo.xlsx");

        // Close the workbook
        workBook.Close();
    }
}
Imports IronXL

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new WorkBook object
		Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)

		' Add a new WorkSheet to the workbook
		Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")

		' Define sample data
		Dim data(,) As String = {
			{ "Name", "Age", "City" },
			{ "Superman", "35", "Metropolis" },
			{ "Batman", "34", "Gotham City" },
			{ "Flash", "30", "Central City" }
		}

		' Populate the worksheet with data
		For row As Integer = 0 To data.GetLength(0) - 1
			For col As Integer = 0 To data.GetLength(1) - 1
				workSheet.SetCellValue(row, col, data(row, col))
			Next col
		Next row

		' Save the workbook to a .xlsx file
		workBook.SaveAs("Demo.xlsx")

		' Close the workbook
		workBook.Close()
	End Sub
End Class
$vbLabelText   $csharpLabel

このコードサンプルでは、最初に必要なExcelファイル形式を指定して、IronXLのCreate()関数を使用して新しいWorkBookオブジェクトを作成します。 次に、ワークブック内に新しいワークシートを作成し、2次元配列でいくつかのサンプルデータを定義します。 次に、サンプルデータを使ってスプレッドシートを埋め込むために、異なるセルの値をアクセスして設定するためにネストされたループを使用します。 SaveAs()メソッドを使用してファイルに名前を付けてDemo.xlsxとして保存した後、システムリソースを解放するためにワークブックをシャットダウンします。 また同様にして、ターゲットファイルに対して複数のシートを生成することができます。

出力として作成されるExcelファイルが以下に示されています。 Excelファイルの書き込みに関する詳細を知るには、コード例ページを参照してください。

C#でテンプレートからPowerPointを作成する方法:図6 - Excelファイルの出力

結論

結論として、テンプレートからのPowerPointプレゼンテーションをC#を使用して作成することにより、ユーザーはデザインの一貫性を向上させ、ワークフローを迅速化し、影響を与えるコンテンツを生成できます。 開発者は、作成プロセスを自動化し、Microsoft PowerPoint Interopライブラリの機能を利用して、時間と労力を節約しながらプロフェッショナルな結果を保証できます。 このアプローチを学ぶことで、発表者、ビジネスプロフェッショナル、または教育者としてのプレゼンテーションスキルを向上させ、視覚的に魅力的なスライドで聴衆を引きつけることができます。

C#開発者にとって、IronXLはMicrosoft Excelの強力な代替手段であり、Excelの完全サポート、高いパフォーマンス、および.NETフレームワークとのシームレスな連携を提供しています。 IronXLの使いやすいAPIとExcelドキュメントに対する細かな制御により、C#でのExcelの書き込みが簡素化されます。 これにより、開発者はExcel関連のタスクを自動化し、データをエクスポートし、動的なレポートを生成するプロセスを容易にします。 デスクトップ、Web、またはモバイルアプリのためにExcelファイルを作成しているかどうかに関わらず、C#開発者は、Excel関連のタスクを簡素化し、C#プログラムでExcelの完全な可能性を開放するためにIronXLを利用することができます。

IronXLは初回起動時に$799がかかります。 さらに、ユーザーは製品サポートとアップデートを1年間取得するために、会費を支払うオプションがあります。 料金を支払えば、IronXLは無制限な再配布に対する保護を提供します。 詳細な価格情報については、このライセンスページを訪問してください。 このウェブサイトリンクをクリックしてIron Softwareの詳細をご覧ください。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。