今回はC#でPowerPointのスライドにハイパーリンクを追加する方法を紹介します。リンクを追加するには、テキストや画像などを対象にハイパーリンクを追加することができます。リンクの対象については、サイトのページ、メールのアドレスおよび指定されたスライドなどにジャンプできます。その他、この文章で紹介された既にスライドにあったリンクの編集、削除する方法を参照してもいいです。
使用すべきのプログラムクラスライブラリー:Free Spire.Presentation for .NET(無料版)
Dllファイルの取得と参照:
方法1 Free Spire.Presentation for .NETの公式サイトからアーカイブをダウンロードして、解凍したら「Bin」フォルダのプログラムを指定されたパスにインストールします。インストール完了したあと、パスの下の「Bin」フォルダにあるSpire.Presentation.dllファイルをプログラムを参照に追加し、using指令を追加します。
方法2 Nugetを通してインストールする
DLLを参照に追加した結果は以下のようになります:
C#コード一覧
- PowerPointスライドにハイパーリンクを追加
using Spire.Presentation;
using Spire.Presentation.Drawing;
using System.Drawing;
namespace AddHyperlink
{
class Program
{
static void Main(string args)
{
//Presentationインスタンスを初期化する
Presentation PowerPoint = new Presentation();
//スライドを追加して2番目のスライそにする(ドキュメントを作成するとデフォルトで一つのスライドを作る)
PowerPoint.Slides.Append();
//1番目のスライドを取得して形状を追加する
ISlide slide1 = PowerPoint.Slides[0];
IAutoShape shape = slide1.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(100, 100, 450, 200));
shape.Fill.FillType = FillFormatType.Solid;
shape.Fill.SolidColor.Color = Color.LightYellow;
shape.ShapeStyle.LineColor.Color = Color.White;
//文字列変数を編集する
string s1 = "Google";
string s2 = "は世界最大の捜索エンジンであり、情報と知識を中心としたインターネット統合サービス会社と世界をリードする人工知能プラットフォーム会社です。";
string s3 = "詳細は2ページの概要を参照してください";
//形状段落を取得(デフォルトでは空白の段落がある)
TextParagraph paragraph = shape.TextFrame.TextRange.Paragraph;
paragraph.Alignment = TextAlignmentType.Left;
//文字列s1によりtr1を作成し、文字にWebアドレスに指すリンクを追加する
TextRange tr1 = new TextRange(s1);
tr1.ClickAction.Address = "https://www.google.com/";
//tr1.ClickAction.Address = "123654zz@gmail.com";//メールアドレスに指す
//文字列s2によりtr2を作成する
TextRange tr2 = new TextRange(s2);
//文字列s3によりtr3を作成し、文字に2番目のスライドに指すリンクを追加する
TextRange tr3 = new TextRange(s3);
ClickHyperlink link = new ClickHyperlink(PowerPoint.Slides[1]);
tr3.ClickAction = link;
//TextRangeを段落に追加する
paragraph.TextRanges.Append(tr1);
paragraph.TextRanges.Append(tr2);
paragraph.TextRanges.Append(tr3);
//段落のフォントを設置する
foreach (TextRange tr in paragraph.TextRanges)
{
tr.LatinFont = new TextFont("Yu Mincho");
tr.FontHeight = 20f;
tr.IsBold = TriState.True;
tr.Fill.FillType = FillFormatType.Solid;
tr.Fill.SolidColor.Color = Color.Black;
}
//2番目のスライドを取得して形状を追加し、そして画像を形状に追加してWebアドレスに指すリンクを設置する
ISlide slide2 = PowerPoint.Slides[1];
RectangleF rect = new RectangleF(250, 175, 195, 130);
IEmbedImage image = slide2.Shapes.AppendEmbedImage(ShapeType.Rectangle, @"tp.png", rect);
ClickHyperlink hyperlink = new ClickHyperlink("https://www.google.com/");
image.Click = hyperlink;
//ドキュメントを保存する
PowerPoint.SaveToFile("AddHyperlink.pptx", FileFormat.Pptx2010);
System.Diagnostics.Process.Start("AddHyperlink.pptx");
}
}
}
スライドショーでハイパーリンクの追加した結果を確認できます。
テキストハイパーリンクの追加した結果:
画像ハイパーリンクの追加した結果:
- PowerPointスライドのハイパーリンクを編集、削除
using Spire.Presentation;
namespace ModifyHyperlink
{
class Program
{
static void Main(string args)
{
//Presentationインスタンスを初期化する
Presentation PowerPoint = new Presentation();
//既にあったドキュメントをロードする
PowerPoint.LoadFromFile("AddHyperlink.pptx");
//1番目のスライドを取得する
ISlide slide = PowerPoint.Slides[0];
//shapeをトラバーサル
foreach (IShape shape in slide.Shapes)
{
//autoshapeかどうかを判断する
if (shape is IAutoShape)
{
//shapeをautoshapeに転換する
IAutoShape autoShape = shape as IAutoShape;
//autoshapeのparagraphをトラバーサル
foreach (TextParagraph tp in autoShape.TextFrame.Paragraphs)
{
//paragraphの下はtextrangeの存在を判断する
if (tp.TextRanges != null && tp.TextRanges.Count > 0)
{
//textrangeをトラバーサル
for (int tpcount = 0; tpcount < tp.TextRanges.Count; tpcount++)
{
//テキストの存在及びClickActionとリンクが含んでいるかどうかを判断する
if (tp.TextRanges[tpcount].ClickAction != null && !string.IsNullOrWhiteSpace(tp.TextRanges[tpcount].ClickAction.Address) && !string.IsNullOrWhiteSpace(tp.TextRanges[tpcount].Text))
{
//http或いはhttpsリンクの存在を判断する
if (tp.TextRanges[tpcount].ClickAction.Address.ToLower().Contains("http") || tp.TextRanges[tpcount].ClickAction.Address.ToLower().Contains("https"))
{
//リンクを再アロケーション
tp.TextRanges[tpcount].ClickAction.Address = "https://ja.wikipedia.org/";
//ハイパーリンクテキストを再設置する
tp.TextRanges[tpcount].Text = "ウィキペディア";
//ハイパーリンクを削除する
//tp.TextRanges[tpcount].ClickAction = null;
}
}
}
}
}
}
}
//ドキュメントを保存する
PowerPoint.SaveToFile("ModifyHyperlink.pptx", FileFormat.Pptx2010);
System.Diagnostics.Process.Start("ModifyHyperlink.pptx");
}
}
}
ハイパーリンクの修正した結果:
ハイパーリンクの削除した結果:
以上は今回のC#でPowerPointのハイパーリンクを追加、修正、削除する方法でございます、読んでいただきありがとうございます!