チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.Presentation for .NET»ハイパーリンク»C#:PowerPoint プレゼンテーションからハイパーリンクを削除する方法
2024-08-22

C#:PowerPoint プレゼンテーションからハイパーリンクを削除する方法

PowerPoint プレゼンテーションには、オーディエンスを追加のリソースやプレゼンテーション内の別の場所に誘導するハイパーリンクが含まれていることがよくあります。これらのリンクは、追加情報を提供したり、簡単にナビゲートしたりするのに役立ちますが、プレゼンテーションの流れを妨げたり、プロフェッショナルな外観を損なう場合があります。スライド内の無効なリンクや不要なリンクを削除することで、プレゼンテーションの全体的な質を向上させることができます。

この記事では、C# プログラムで Spire.Presentation for .NET を使用して、PowerPoint プレゼンテーションからハイパーリンクを効率的に削除する方法を紹介します。

Spire.Presentation for .NET をインストールします

まず、Spire.Presentation for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Presentation

スライド内のテキストからハイパーリンクを削除

PowerPoint プレゼンテーションの通常のテキストは、自動シェイプ(AutoShape)に含まれています。開発者は、IAutoShape.TextFrame.Paragraphs[].TextRanges[] プロパティを使用してこれらのシェイプ内のテキスト範囲にアクセスし、TextRange.ClickAction プロパティを使用してハイパーリンクを読み取ったり設定したりすることができます。テキストのハイパーリンクは、TextRange.ClickAction プロパティを null に設定することで削除できます。

詳細な手順は次のとおりです:

  • Presentation クラスのインスタンスを作成し、Presentation.LoadFromFile() メソッドを使用して PowerPoint プレゼンテーションを読み込みます。
  • プレゼンテーション内のスライドを繰り返し処理し、次にスライド内のシェイプを繰り返し処理します。
  • シェイプが IAutoShape のインスタンスであるかどうかを確認します。そうであれば、シェイプ内の段落を繰り返し処理し、次に段落内のテキスト範囲を繰り返し処理します。
  • テキスト範囲の TextRange.ClickAction プロパティが null であるかどうかを確認します。null でない場合は、TextRange.ClickAction プロパティを null に設定してハイパーリンクを削除します。
  • Presentation.SaveToFile() メソッドを使用してプレゼンテーションを保存します。
  • C#
using Spire.Presentation;

namespace RemoveSlideTextLink
{
    class Program
    {
        public static void Main(string[] args)
        {
            // Presentationのインスタンスを作成し、PowerPointプレゼンテーションを読み込む
            Presentation presentation = new Presentation();
            presentation.LoadFromFile("Sample.pptx");

            // プレゼンテーション内のスライドを繰り返し処理
            foreach (ISlide slide in presentation.Slides)
            {
                // スライド内の図形を繰り返し処理
                foreach (IShape shape in slide.Shapes)
                {
                    // 現在の図形がIAutoShapeクラスのインスタンスかどうかを確認
                    if (shape is IAutoShape)
                    {
                        IAutoShape autoShape = (IAutoShape)shape;
                        // 図形内の段落を繰り返し処理
                        foreach (TextParagraph paragraph in autoShape.TextFrame.Paragraphs)
                        {
                            // 段落内のテキスト範囲を繰り返し処理
                            foreach (TextRange textRange in paragraph.TextRanges)
                            {
                                // テキスト範囲にハイパーリンクがあるかどうかを確認
                                if (textRange.ClickAction != null)
                                {
                                    // ハイパーリンクを削除
                                    textRange.ClickAction = null;
                                }
                            }
                        }
                    }
                }
            }

            // プレゼンテーションを保存
            presentation.SaveToFile("output/スライドテキストのハイパーリンクを削除.pptx", FileFormat.Auto);
            presentation.Dispose();
        }
    }
}

C#:PowerPoint プレゼンテーションからハイパーリンクを削除する方法

スライド内のすべてのシェイプからハイパーリンクを削除

IShape クラスは、スライド内のすべての種類のシェイプ(自動シェイプ、画像、テーブルなど)を表します。これらのすべてのシェイプ上のハイパーリンクは、IShape.Click プロパティを null に設定することで削除できます。詳細な手順は次のとおりです:

  • Presentation ラスのインスタンスを作成し、Presentation.LoadFromFile() メソッドを使用して PowerPoint プレゼンテーションを読み込みます。
  • プレゼンテーション内のスライドを繰り返し処理し、次にスライド内のシェイプを繰り返し処理します。
  • IShape.Click プロパティが null であるかどうかを確認します。null でない場合は、プロパティに null を設定してハイパーリンクを削除します。
  • Presentation.SaveToFile() メソッドを使用してプレゼンテーションを保存します。
  • C#
using Spire.Presentation;

namespace RemoveSlideShapeHyperlink
{
    class Program
    {
        static void Main(string[] args)
        {
            // Presentationクラスのインスタンスを作成し、PowerPointプレゼンテーションを読み込む
            Presentation presentation = new Presentation();
            presentation.LoadFromFile("Sample.pptx");

            // プレゼンテーション内のスライドを繰り返し処理
            foreach (ISlide slide in presentation.Slides)
            {
                // スライド内の図形を繰り返し処理
                foreach (IShape shape in slide.Shapes)
                {
                    // 図形にハイパーリンクがあるかどうかを確認
                    if (shape.Click != null)
                    {
                        shape.Click = null;
                    }
                }
            }

            // プレゼンテーションを保存
            presentation.SaveToFile("output/スライドシェイプのハイパーリンクを削除.pptx", FileFormat.Auto);
            presentation.Dispose();
        }
    }
}

C#:PowerPoint プレゼンテーションからハイパーリンクを削除する方法

特定の種類のシェイプからハイパーリンクを削除

すべてのシェイプから直接ハイパーリンクを削除するだけでなく、削除する前にシェイプの種類を判別し、指定された種類のシェイプからのみハイパーリンクを見つけて削除することもできます。詳細な手順は次のとおりです:

  • Presentation クラスのインスタンスを作成し、Presentation.LoadFromFile() メソッドを使用して PowerPoint プレゼンテーションを読み込みます。
  • プレゼンテーション内のスライドを繰り返し処理し、次にスライド内のシェイプを繰り返し処理します。
  • シェイプが IEmbedImageITable、または IChart のインスタンスであるかどうかを確認します。そうであれば、シェイプの IShape.Click プロパティが null であるかどうかを確認します。null でない場合は、プロパティに null を設定してハイパーリンクを削除します。
  • Presentation.SaveToFile() メソッドを使用してプレゼンテーションを保存します。
  • C#
using Spire.Presentation;
using Spire.Presentation.Charts;

namespace RemoveSlideShapeTypeHyperlink
{
    class Program
    {
        static void Main(string[] args)
        {
            // Presentationクラスのインスタンスを作成し、PowerPointプレゼンテーションを読み込む
            Presentation presentation = new Presentation();
            presentation.LoadFromFile("Sample.pptx");

            // プレゼンテーション内のスライドを繰り返し処理
            foreach (ISlide slide in presentation.Slides)
            {
                // スライド内の図形を繰り返し処理
                foreach (IShape shape in slide.Shapes)
                {
                    // 図形がIEmbedImage、ITable、またはIChartのインスタンスかどうかを確認
                    if (shape is IEmbedImage || shape is ITable || shape is IChart)
                    {
                        // シェイプにハイパーリンクがあるかどうかを確認
                        if (shape.Click != null)
                        {
                            // ハイパーリンクを削除
                            shape.Click = null;
                        }
                    }
                }
            }

            // プレゼンテーションを保存
            presentation.SaveToFile("output/スライドシェイプ型のハイパーリンクを削除.pptx", FileFormat.Auto);
            presentation.Dispose();
        }
    }
}

C#:PowerPoint プレゼンテーションからハイパーリンクを削除する方法

スライド内のテーブルテキストからハイパーリンクを削除

テーブル内のテキストからハイパーリンクを削除するには、テーブルのセルと各セル内のテキスト範囲を繰り返し処理する必要があります。その後、各セル内のテキスト範囲にあるハイパーリンクを TextRange.ClickAction プロパティを null に設定することで削除できます。詳細な手順は次のとおりです:

  • Presentation クラスのインスタンスを作成し、Presentation.LoadFromFile() メソッドを使用して PowerPoint プレゼンテーションを読み込みます。
  • プレゼンテーション内のスライドを繰り返し処理し、次にスライド内のシェイプを繰り返し処理します。
  • シェイプが ITable クラスのインスタンスであるかどうかを確認します。そうであれば、テーブル内の行を繰り返し処理し、次に行内のセルを繰り返し処理します。
  • セル内の段落を繰り返し処理し、次に段落内のテキスト範囲を繰り返し処理します。
  • テキスト範囲の TextRange.ClickAction プロパティが null であるかどうかを確認します。null でない場合は、プロパティの値を null に設定してハイパーリンクを削除します。
  • Presentation.SaveToFile() メソッドを使用してプレゼンテーションを保存します。
  • C#
using Spire.Presentation;

namespace RemoveSlideTableTextHyperlink
{
    class Program
    {
        static void Main(string[] args)
        {
            // Presentationクラスのインスタンスを作成し、PowerPointプレゼンテーションを読み込む
            Presentation presentation = new Presentation();
            presentation.LoadFromFile("Sample.pptx");

            // プレゼンテーション内のスライドを繰り返し処理
            foreach (ISlide slide in presentation.Slides)
            {
                // スライド内の図形を繰り返し処理
                foreach (IShape shape in slide.Shapes)
                {
                    // 図形がITableのインスタンスかどうかを確認
                    if (shape is ITable)
                    {
                        ITable table = (ITable)shape;
                        // テーブル内の行を繰り返し処理
                        foreach (TableRow row in table.TableRows)
                        {
                            // 行内のセルを繰り返し処理
                            foreach (Cell cell in row)
                            {
                                // セル内の段落を繰り返し処理
                                foreach (TextParagraph paragraph in cell.TextFrame.Paragraphs)
                                {
                                    // 段落内のテキスト範囲を繰り返し処理
                                    foreach (TextRange textRange in paragraph.TextRanges)
                                    {
                                        // テキスト範囲にハイパーリンクがあるかどうかを確認
                                        if (textRange.ClickAction != null)
                                        {
                                            // ハイパーリンクを削除
                                            textRange.ClickAction = null;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            // プレゼンテーションを保存
            presentation.SaveToFile("output/スライドテーブルのテキストハイパーリンクを削除.pptx", FileFormat.Auto);
            presentation.Dispose();
        }
    }
}

C#:PowerPoint プレゼンテーションからハイパーリンクを削除する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 79 times