【VB.NET】ClosedXML:ハイパーリンク

MEMO
  • この記事は GitHub - ClosedXML - Wiki を参考に書かせていただいたものですが、C# から VB.NET への書き換えをし、英語から日本語へ翻訳しただけでなく、元記事の構成・コード・コメント等を変更している場合もありますのでご了承ください。
  • 現在 ClosedXML のメンテナンスをご担当されている Francois Botha 様からの掲載許可もいただいてます。
  • この記事のコードサンプルについては、Imports ClosedXML.Excel が宣言されていることを前提としています。
  • ClosedXML の作成者について:Francois Botha, Aleksei Pankratev, Manuel de Leon, Amir Ghezelbash
  • ClosedXML のライセンスについて:GitHub - ClosedXML - MIT License

 

下図のようなハイパーリンクを持ったワークシートを作成します。

 

コード

Dim wb = New XLWorkbook
Dim ws = wb.Worksheets.Add("ハイパーリンク")
wb.Worksheets.Add("2番目のシート")

Dim ro As Int32 = 0

'ブラウザで使えるようなリンクを作成できます:
'http, ftp, mailto, gopher, news, nntp, など

ro += 1
ws.Cell(ro, 1).Value = "Web ページへのリンク、ツールチップなし - Yahoo! Japan"
ws.Cell(ro, 1).Hyperlink = New XLHyperlink("https://www.yahoo.co.jp/")

ro += 1
ws.Cell(ro, 1).Value = "Web ページへのリンク、ツールチップあり - Yahoo! Japan"
ws.Cell(ro, 1).Hyperlink = New XLHyperlink("https://www.yahoo.co.jp/", "クリックすると Yahoo! Japan へ飛びます")

ro += 1
ws.Cell(ro, 1).Value = "ファイルへのリンク - 同じフォルダ"
ws.Cell(ro, 1).Hyperlink = New XLHyperlink("./Test.xlsx")

ro += 1
ws.Cell(ro, 1).Value = "ファイルへのリンク - 相対アドレス"
ws.Cell(ro, 1).Hyperlink = New XLHyperlink("../Test.xlsx")

ro += 1
ws.Cell(ro, 1).Value = "このシート内のアドレスへのリンク"
ws.Cell(ro, 1).Hyperlink = New XLHyperlink("B1")

ro += 1
ws.Cell(ro, 1).Value = "別のワークシート内のアドレスへのリンク"
ws.Cell(ro, 1).Hyperlink = New XLHyperlink("'2番目のシート'!A1")

'.Hyperlink のプロパティを直接指定することもできます

ro += 1
ws.Cell(ro, 1).Value = "このワークシート内の範囲へのリンク"
ws.Cell(ro, 1).Hyperlink.InternalAddress = "B1:C2"
ws.Cell(ro, 1).Hyperlink.Tooltip = "矩形範囲へのリンク"

ro += 1
ws.Cell(ro, 1).Value = "Eメールメッセージへのリンク"
ws.Cell(ro, 1).Hyperlink.ExternalAddress = New Uri("mailto:SantaClaus@NorthPole.com?subject=プレゼントについて")

'ハイパーリンクの削除
ro += 1
ws.Cell(ro, 1).Value = "これはもうリンクではありません"
ws.Cell(ro, 1).Hyperlink.InternalAddress = "A1"
ws.Cell(ro, 1).Hyperlink.Delete

'ハイパーリンクを設定しても既存の書式は保持されます
ro += 1
ws.Cell(ro, 1).Value = "赤文字・二重下線のセルにリンクを追加"
ws.Cell(ro, 1).Style.Font.FontColor = XLColor.Red
ws.Cell(ro, 1).Style.Font.Underline = XLFontUnderlineValues.Double
ws.Cell(ro, 1).Hyperlink = New XLHyperlink(ws.Range("B1:C2"))

'ワークシート内のすべてのハイパーリンクのリスト
Dim hyperlinksInWorksheet = ws.Hyperlinks

'範囲内のすべてのハイパーリンクのリスト
Dim hyperlinksInRange = ws.Range("A1:A3").Hyperlinks

'コンテンツが日本語の場合は日本語フォントにしておかないと AdjustToContents が正しく動作しない
ws.Style.Font.FontName = "游ゴシック";
ws.Columns.AdjustToContents

wb.SaveAs("D:\test\Hyperlinks.xlsx")

 

「【VB.NET】ClosedXML の使い方」の一覧を表示

購読する
通知を受け取る対象
guest
0 Comments
Inline Feedbacks
View all comments