エクセルツール

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

リーガン・パン
リーガン・パン
2024年3月26日
共有:

イントロダクション

PowerPoint プレゼンテーションは、商業、教育、その他の分野で情報を効率的に伝達するための標準であり続けています。 PowerPointは、クラスを教える際、チームにプロジェクトの進捗状況を報告する際、または潜在的な投資家にプレゼンテーションを行う際など、コミュニケーションを向上させる柔軟なツールです。 しかし、一からプレゼンテーションを作成するのには多くの時間がかかることがあり、効率性とデザインの統一性が常に望ましいものになるとは限りません。 これが、PowerPointテンプレートが便利な理由です。テーマやレイアウトがあらかじめ設定されたスライドを提供し、あなたの要件に合わせて変更することができます。

この投稿では、テンプレートを使用してC#でPowerPointを作成する方法を見ていきます。 Microsoft PowerPoint Interop ライブラリ)を利用することで、手続きを迅速化し、顧客が簡単に洗練されたプレゼンテーションを作成できるようにします。

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を使用する前に、コンピュータにインストールされていることを確認してください。

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

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

「新しいプロジェクトを作成する」ボックスの左側からお好みのプログラミング言語(例えば、C#)を選択してください。 次に、利用可能なプロジェクトテンプレートのリストから、「Console App」または「Console App (.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;
class Program
{
    static void Main(string [] args)
    {
        // Initialize PowerPoint application
        PowerPoint.Application powerpointApp = new PowerPoint.Application();
        // Load a PowerPoint file
        PowerPoint.Presentation presentation = powerpointApp.Presentations.Open(
            @"C:\Path\To\Existing\output.pptx",
            MsoTriState.msoFalse,
            MsoTriState.msoFalse,
            MsoTriState.msoTrue);
        // ppt slide from a template file
        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;
class Program
{
    static void Main(string [] args)
    {
        // Initialize PowerPoint application
        PowerPoint.Application powerpointApp = new PowerPoint.Application();
        // Load a PowerPoint file
        PowerPoint.Presentation presentation = powerpointApp.Presentations.Open(
            @"C:\Path\To\Existing\output.pptx",
            MsoTriState.msoFalse,
            MsoTriState.msoFalse,
            MsoTriState.msoTrue);
        // ppt slide from a template file
        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
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize PowerPoint application
		Dim powerpointApp As New PowerPoint.Application()
		' Load a PowerPoint file
		Dim presentation As PowerPoint.Presentation = powerpointApp.Presentations.Open("C:\Path\To\Existing\output.pptx", MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoTrue)
		' ppt slide from a template file
		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() メソッドは、FileNameIndexSlideStartSlideEnd の4つのパラメーターを取ります。

プレゼンテーションに含めたいスライドを含むPowerPointファイルへのパスは、最初のパラメーター(demo.pptx)として指定されます。 次のパラメーターは、ユーザーがテンプレートから新しいファイルにコピーする必要があるスライドの数です。 他の2つのパラメーターは任意です。 これらのパラメータを使用して、開始スライドと終了スライドのインデックスを渡すことができます。 スライドの間のスライドを抽出する必要がある場合は、これらのパラメーターを使用できます。

スライドをInsertFromFile()メソッドで挿入した後に、presentation.Save()メソッドを使用してプレゼンテーションを保存し、Close()メソッドを使用してPowerPointプログラムを閉じ、Quit()メソッドでプレゼンテーションを終了することができます。 これにより、InsertFromFile テクニックを利用して外部ファイルからスライドを動的に追加することで、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ファイルの両方から効果的にデータを抽出することができます。
  • 高速: IronXLはパフォーマンスの最適化を優先します。 効率的なアルゴリズムとメモリ管理戦略のおかげで、Excelとのやり取りは信頼性が高く迅速です。 IronXLは、メモリのオーバーヘッドを削減し、最適化された処理速度を提供するため、開発者は巨大なExcelファイルを簡単に管理できます。
  • 簡潔で使いやすいAPI: IronXLの使いやすいAPIは、すべてのスキルレベルの開発者に適しています。 IronXL は、C# 開発者の学習曲線を減少させ、Excel ファイルの読み取り、Excel ワークブックへのアクセス、セルからのデータ取得を簡単に行う方法を提供することにより、既存ファイルの作成および読み取りプロセスを迅速化します。

    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", "Metropolis" },
            { "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", "Metropolis" },
            { "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", "Metropolis" },
				{ "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

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

出力として作成されたエクセルファイルは以下の通りです。 Excelファイルの作成方法について詳しくは、コード例のページをご覧ください。

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

結論

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

C#開発者向けに、IronXLはMicrosoft Excelの強力な代替手段であり、Excelの完全なサポート、優れたパフォーマンス、.NETフレームワークとのシームレスな連携を提供します。 IronXLの使いやすいAPIとExcelドキュメントに対する詳細な制御により、C#でのExcel記述が簡素化されます。 これは、開発者がExcel関連のタスクを自動化し、データをエクスポートし、動的なレポートを生成するプロセスを容易にします。 デスクトップ、ウェブ、またはモバイルアプリのためにExcelファイルを作成する際、C#開発者はIronXLを利用してExcel関連のタスクを効率化し、C#プログラムでExcelのフルポテンシャルを引き出すことができます。

IronXLは発売時に$749かかります。 さらに、ユーザーは会費を1年間支払うことで、製品のサポートおよびアップデートを受けることができます。 料金を支払うことで、IronXLは無制限の再配布に対する保護を提供します。 おおよその費用について詳しく知るには、このライセンスページをご覧ください。 このウェブサイトのリンクをクリックして、Iron Softwareについてもっと見る。

リーガン・パン
ソフトウェアエンジニア
レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
C# で PowerPoint ファイルを表示する方法
次へ >
.NET Regex Testerで正規表現パターンをテストする