Word ドキュメント内のハイパーリンクを使用すると、読者はドキュメントの任意の位置、ファイル、Web サイト、または電子メールにジャンプすることができます。ハイパーリンクを使用すると、読者は関連する情報へすばやく簡単に移動することができます。この記事では、Spire.Doc for .NET を使用して Word ドキュメント内のテキストや画像にハイパーリンクを挿入する方法について説明します。 Word ドキュメントにテキストを追加しながら、ハイパーリンクを挿入する Word ドキュメント内の既存のテキストにハイパーリンクを追加する Spire.Doc for .NET をインストールします まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。 PM> Install-Package Spire.Doc Word ドキュメントにテキストを追加しながら、ハイパーリンクを挿入する Spire.Doc では、段落内のテキストや画像に Web リンク、メールリンク、ファイルリンク、ブックマークリンクを追加する Paragraph.AppendHyperlink() メソッドを提供しています。以下は、その詳細な手順です。 Document クラスのオブジェクトを作成します。 ドキュメントにセクションと段落を追加します。 Paragraph.AppendHyerplink(string link, string text, HyperlinkType type) メソッドを使用して、テキストを元にしたハイパーリンクを挿入します。 Paragraph.AppendPicture() メソッドを使用して、段落に画像を追加します。 Paragraph.AppendHyerplink(string link, Spire.Doc.Fields.DocPicture picture, HyperlinkType type) メソッドを使用して、画像に基づくハイパーリンクを挿入します。 Document.SaveToFile() メソッドを使用して、ドキュメントを保存します。 C# VB.NET using Spire.Doc; using Spire.Doc.Documents; using System.Drawing; namespace InsertHyperlinks { internal class Program { static void Main(string[] args) { //Wordドキュメントを作成する Document doc = new Document(); //セクションを追加する Section section = doc.AddSection(); //段落を追加する Paragraph paragraph = section.AddParagraph(); paragraph.AppendHyperlink("https://jp.e-iceblue.com/", "公式サイト", HyperlinkType.WebLink); //改行を追加する paragraph.AppendBreak(BreakType.LineBreak); paragraph.AppendBreak(BreakType.LineBreak); //メールリンクを追加する paragraph.AppendHyperlink("mailto:support @e-iceblue.com", "メールでのお問い合わせ", HyperlinkType.EMailLink); //改行を追加する paragraph.AppendBreak(BreakType.LineBreak); paragraph.AppendBreak(BreakType.LineBreak); //ファイルリンクを追加する string filePath = @"C:レポート.xlsx"; paragraph.AppendHyperlink(filePath, "クリックするとレポートが開きます", HyperlinkType.FileLink); //改行を追加する paragraph.AppendBreak(BreakType.LineBreak); paragraph.AppendBreak(BreakType.LineBreak); //別のセクションを追加し、ブックマークを作成する Section section2 = doc.AddSection(); Paragraph bookmarkParagrapg = section2.AddParagraph(); bookmarkParagrapg.AppendText("これは1つのブックマークです"); BookmarkStart start = bookmarkParagrapg.AppendBookmarkStart("私のブックマーク"); bookmarkParagrapg.Items.Insert(0, start); bookmarkParagrapg.AppendBookmarkEnd("私のブックマーク"); //ブックマークへのリンクを追加する paragraph.AppendHyperlink("私のブックマーク", "このドキュメントの中の特定の位置へジャンプする", HyperlinkType.Bookmark); //改行を追加する paragraph.AppendBreak(BreakType.LineBreak); paragraph.AppendBreak(BreakType.LineBreak); paragraph.AppendBreak(BreakType.LineBreak); //画像に基づくハイパーリンクを追加する Image image = Image.FromFile(@"C:.net.png"); Spire.Doc.Fields.DocPicture picture = paragraph.AppendPicture(image); paragraph.AppendHyperlink("https://docs.microsoft.com/ja-jp/dotnet/", picture, HyperlinkType.WebLink); //ドキュメントを保存する doc.SaveToFile("ハイパーリンクの挿入.docx", FileFormat.Docx2013); } } } Imports Spire.Doc Imports Spire.Doc.Documents Imports System.Drawing Namespace InsertHyperlinks Friend Class Program Shared Sub Main(ByVal args() As String) 'Wordドキュメントを作成する Dim doc As Document = New Document() 'セクションを追加する Dim section As Section = doc.AddSection() '段落を追加する Dim paragraph As Paragraph = section.AddParagraph() paragraph.AppendHyperlink("https://jp.e-iceblue.com/", "公式サイト", HyperlinkType.WebLink) '改行を追加する paragraph.AppendBreak(BreakType.LineBreak) paragraph.AppendBreak(BreakType.LineBreak) 'メールリンクを追加する paragraph.AppendHyperlink("mailto:support @e-iceblue.com", "メールでのお問い合わせ", HyperlinkType.EMailLink) '改行を追加する paragraph.AppendBreak(BreakType.LineBreak) paragraph.AppendBreak(BreakType.LineBreak) 'ファイルリンクを追加する Dim filePath As String = "C:レポート.xlsx" paragraph.AppendHyperlink(filePath, "クリックするとレポートが開きます", HyperlinkType.FileLink) '改行を追加する paragraph.AppendBreak(BreakType.LineBreak) paragraph.AppendBreak(BreakType.LineBreak) '別のセクションを追加し、ブックマークを作成する Dim section2 As Section = doc.AddSection() Dim bookmarkParagrapg As Paragraph = section2.AddParagraph() bookmarkParagrapg.AppendText("これは1つのブックマークです") Dim start As BookmarkStart = bookmarkParagrapg.AppendBookmarkStart("私のブックマーク") bookmarkParagrapg.Items.Insert(0, start) bookmarkParagrapg.AppendBookmarkEnd("私のブックマーク") 'ブックマークへのリンクを追加する paragraph.AppendHyperlink("私のブックマーク", "このドキュメントの中の特定の位置へジャンプする", HyperlinkType.Bookmark) '改行を追加する paragraph.AppendBreak(BreakType.LineBreak) paragraph.AppendBreak(BreakType.LineBreak) paragraph.AppendBreak(BreakType.LineBreak) '画像に基づくハイパーリンクを追加する Dim image As Image = Image.FromFile("C:.net.png") Dim picture As Spire.Doc.Fields.DocPicture = paragraph.AppendPicture(image) paragraph.AppendHyperlink("https://docs.microsoft.com/ja-jp/dotnet/", picture, HyperlinkType.WebLink) 'ドキュメントを保存する doc.SaveToFile("ハイパーリンクの挿入.docx", FileFormat.Docx2013) End Sub End Class End Namespace Word ドキュメント内の既存のテキストにハイパーリンクを追加する ドキュメント内の既存のテキストにハイパーリンクを追加するのは、少し複雑です。対象となる文字列を見つけ、それをハイパーリンクフィールドに置き換える必要があります。以下はその手順です。 Document クラスのオブジェクトを作成します。 Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。 Document.FindAllString() メソッドを使用してドキュメント内の対象文字列をすべて検索し、インデックスで対象文字列を取得します。 その文字列が存在する段落と、その段落内での位置を取得します。 その文字列を段落から削除します。 ハイパーリンクフィールドを作成し、元の文字列がある位置に挿入します。 Document.SaveToFle() メソッドを使用してドキュメントを保存します。 C# VB.NET using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using Spire.Doc.Interface; namespace InsertHyperlinks { internal class Program { static void Main(string[] args) { //Documentクラスのオブジェクトを作成する Document document = new Document(); //Wordドキュメントを読み込む document.LoadFromFile(@"C:例.docx"); //ドキュメント内の「.NET Framework」文字列をすべて検索する TextSelection[] selections = document.FindAllString(".NET Framework", true, true); //2番目に見つかった文字列を取得する TextRange range = selections[1].GetAsOneRange(); //この文字列が含まれる段落を取得する Paragraph parapgraph = range.OwnerParagraph; //段落内のこの文字列の位置を取得する int index = parapgraph.Items.IndexOf(range); //この文字列を段落から削除する parapgraph.Items.Remove(range); //ハイパーリンクフィールドを作成する Spire.Doc.Fields.Field field = new Spire.Doc.Fields.Field(document); field.Type = Spire.Doc.FieldType.FieldHyperlink; Hyperlink hyperlink = new Hyperlink(field); hyperlink.Type = HyperlinkType.WebLink; hyperlink.Uri = "https://ja.wikipedia.org/wiki/.NET_Framework"; parapgraph.Items.Insert(index, field); //段落にフィールドマーク「start」を挿入する IParagraphBase start = document.CreateParagraphItem(ParagraphItemType.FieldMark); (start as FieldMark).Type = FieldMarkType.FieldSeparator; parapgraph.Items.Insert(index + 1, start); //2つのフィールドマークの間にテキスト範囲を挿入する ITextRange textRange = new Spire.Doc.Fields.TextRange(document); textRange.Text = ".NET Framework"; textRange.CharacterFormat.FontName = range.CharacterFormat.FontName; textRange.CharacterFormat.TextColor = System.Drawing.Color.Blue; textRange.CharacterFormat.UnderlineStyle = UnderlineStyle.Single; parapgraph.Items.Insert(index + 2, textRange); //段落にフィールドマーク「end」を挿入する IParagraphBase end = document.CreateParagraphItem(ParagraphItemType.FieldMark); (end as FieldMark).Type = FieldMarkType.FieldEnd; parapgraph.Items.Insert(index + 3, end); //ドキュメントを保存する document.SaveToFile("ハイパーリンクの追加.docx", Spire.Doc.FileFormat.Docx); } } } Imports Spire.Doc Imports Spire.Doc.Documents Imports Spire.Doc.Fields Imports Spire.Doc.Interface Namespace InsertHyperlinks Friend Class Program Shared Sub Main(ByVal args() As String) 'Documentクラスのオブジェクトを作成する Dim document As Document = New Document() 'Wordドキュメントを読み込む document.LoadFromFile("C:例.docx") 'ドキュメント内の「.NET Framework」文字列をすべて検索する Dim selections() As TextSelection = document.FindAllString(".NET Framework", True, True) '2番目に見つかった文字列を取得する Dim range As TextRange = selections(1).GetAsOneRange() 'この文字列が含まれる段落を取得する Dim parapgraph As Paragraph = range.OwnerParagraph '段落内のこの文字列の位置を取得する Dim index As Integer = parapgraph.Items.IndexOf(range) 'この文字列を段落から削除する parapgraph.Items.Remove(range) 'ハイパーリンクフィールドを作成する Dim field As Spire.Doc.Fields.Field = New Spire.Doc.Fields.Field(document) field.Type = Spire.Doc.FieldType.FieldHyperlink Dim hyperlink As Hyperlink = New Hyperlink(field) hyperlink.Type = HyperlinkType.WebLink hyperlink.Uri = "https://ja.wikipedia.org/wiki/.NET_Framework" parapgraph.Items.Insert(index, field) '段落にフィールドマーク「start」を挿入する Dim start As IParagraphBase = document.CreateParagraphItem(ParagraphItemType.FieldMark) (start as FieldMark).Type = FieldMarkType.FieldSeparator parapgraph.Items.Insert(index + 1, start) '2つのフィールドマークの間にテキスト範囲を挿入する Dim textRange As ITextRange = New Spire.Doc.Fields.TextRange(document) textRange.Text = ".NET Framework" textRange.CharacterFormat.FontName = range.CharacterFormat.FontName textRange.CharacterFormat.TextColor = System.Drawing.Color.Blue textRange.CharacterFormat.UnderlineStyle = UnderlineStyle.Single parapgraph.Items.Insert(index + 2, textRange) '段落にフィールドマーク「end」を挿入する Dim nd As IParagraphBase = document.CreateParagraphItem(ParagraphItemType.FieldMark) (nd as FieldMark).Type = FieldMarkType.FieldEnd parapgraph.Items.Insert(index + 3, nd) 'ドキュメントを保存する document.SaveToFile("ハイパーリンクの追加.docx", Spire.Doc.FileFormat.Docx) End Sub End Class End Namespace 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。