C#を使用してExcelでハイパーリンクを作成する方法

C#でExcelにハイパーリンクを作成する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXLは、C#の開発者がInteropを使用することなく、Excelのセル内にURL、ファイルパス、電子メールアドレス、セル参照などのさまざまなハイパーリンクを作成できるようにし、スプレッドシートにインタラクティブなナビゲーションを追加するプロセスを簡素化します。

Excelのハイパーリンクは、ワークブック内、異なるファイル、Webページ、または電子メールアドレスへのクリック可能な参照を提供します。 これらはナビゲーションを強化し、関連情報や外部リソースへの迅速なアクセスを可能にします。 ハイパーリンクはインタラクティブでユーザーフレンドリーなスプレッドシートを作成し、追加データや外部コンテンツへの簡単なアクセスを促進します。

IronXLは、URL、ローカルおよびFTP(ファイル転送プロトコル)ファイルシステムからの外部ファイルのオープン、電子メールアドレス、セルアドレス、定義された名前のセルに対するハイパーリンクの作成を可能にし、.NET C#でInteropを使用せずに実現します。 この機能は、ビジネスアプリケーションでプログラム的にExcelファイルを扱う場合に不可欠です。

Quickstart: IronXLで数ステップでハイパーリンクを追加する

この例は、IronXLを使ってExcelセルにウェブハイパーリンクを追加することがどれほど簡単であるかを示しています。 ワークブックを作成し、セルの値を設定し、ハイパーリンクを割り当てて保存するだけです。 より包括的な Excel 操作については、C# で Excel ファイルを編集するのガイドをご覧ください。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronXL をインストールします

    PM > Install-Package IronXL.Excel

  2. このコード スニペットをコピーして実行します。

    IronXL.WorkBook workbook = IronXL.WorkBook.Create(IronXL.ExcelFileFormat.XLSX);
    workbook.DefaultWorkSheet.GetCellAt(0, 0).Value = "Visit IronXL Docs";
    workbook.DefaultWorkSheet.GetCellAt(0, 0).Hyperlink = "https://ironsoftware.com";
    workbook.SaveAs("hyperlink_quick.xlsx");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronXL を使い始めましょう
    arrow pointer

どのような前提条件が必要ですか?

ハイパーリンクを実装する前に、.NETプロジェクトにIronXLがインストールされていることを確認してください。 また、範囲の選択IronXLでのワークシートの管理の基本的な理解も必要です。 このライブラリは、.NET Framework 4.6.2+と.NET Core/5/6/7/8+をサポートしており、ほとんどの最新の.NETアプリケーションと互換性があります。

今日あなたのプロジェクトでIronXLを無料トライアルで使用開始。

最初のステップ:
green arrow pointer


エクセルのセルに URL ハイパーリンクを作成するには?

HyperlinkプロパティはCellクラスに存在します。 worksheet["A1"]コードは、Rangeオブジェクトを返します; Firstメソッドを使用して、範囲の最初のセルにアクセスします。

あるいは、GetCellAtメソッドを使って直接セルにアクセスし、Hyperlinkプロパティに直接アクセスすることもできます。 このアプローチは、スプレッドシートで特定のセル座標を扱う場合に特に役立ちます。

リンクハイパーリンクを作成する例を探ってみましょう。 HTTPとHTTPSの両方のプロトコルに対応しているため、安全なWebリソースとそうでないWebリソースへのリンクが可能です。 ハイパーリンクを作成するときは、セルフォーマットと組み合わせて、通常のテキストと視覚的に区別できるようにすることを検討してください。

警告 GetCellAtメソッドを使用して変更されていないセルを選択すると、 System.NullReferenceException: 'オブジェクト参照がオブジェクトのインスタンスに設定されていません。' がスローされます。

:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-link-hyperlink.cs
using IronXL;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Modify the cell's property
workSheet["A1"].Value = "Link to ironpdf.com";

// Set hyperlink at A1 to https://ironpdf.com/
workSheet.GetCellAt(0, 0).Hyperlink = "https://ironpdf.com/";

workBook.SaveAs("setLinkHyperlink.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Modify the cell's property
Private workSheet("A1").Value = "Link to ironpdf.com"

' Set hyperlink at A1 to https://ironpdf.com/
workSheet.GetCellAt(0, 0).Hyperlink = "https://ironpdf.com/"

workBook.SaveAs("setLinkHyperlink.xlsx")
$vbLabelText   $csharpLabel

作成したハイパーリンクをクリックするとどうなりますか?

IronXL.Excelで作成されたハイパーリンクをクリックすると、リンク先のURLをデフォルトのウェブブラウザで開くように指示されます。 セルは、ハイパーリンク機能を追加しながら元の値を維持し、ナビゲーションを可能にしながら説明的なテキストを保持することができます。 この動作は、ローカルで Excel ファイルを扱う場合でも、クラウド環境にデプロイする場合でも一貫しています。

Excel spreadsheet showing 'Link to rongdf.com' text in cell A1, demonstrating hyperlink creation setup

異なるワークシート間でハイパーリンクを作成するには?

同じワークシート内のセルへのハイパーリンクを作成するには、Z20のようにセルのアドレスを使用します。 ワークシートにまたがってハイパーリンクを作成するには、worksheetName!addressというアドレス規約を使用してください。 たとえば、Sheet2!A1. このクロスワークシートリンク機能は、複数のデータシートを持つ複雑なExcelレポートを作成する際に不可欠です。

定義された名前のセルは、ワークブック(グローバル)またはワークシートのスコープを持つことができます。 同じワークシート内の定義された名前、またはワークブックのスコープを持つ定義された名前へのハイパーリンクを作成するには、名前を直接指定します。 別のワークシート上でワークシートスコープの定義された名前に対してハイパーリンクを作成するには、上記のようにワークシート名を指定します。 例えば、Sheet2!Ironのように。 高度な Excel 自動化のための 名前付き範囲 での作業については、こちらをご覧ください。

:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-hyperlink-across-worksheet.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet1 = workBook.CreateWorkSheet("Sheet1");
WorkSheet workSheet2 = workBook.CreateWorkSheet("Sheet2");

// Create workbook(global) define name
workSheet1["D5"].SaveAsNamedRange("Iron", true);

// Create worksheet define name
workSheet2["D10"].SaveAsNamedRange("Hello", false);

// --== Within the same worksheet ==--
// Set hyperlink to cell Z20
workSheet1["A1"].Value = "Z20";
workSheet1["A1"].First().Hyperlink = "Z20";

// Set hyperlink to define name "Iron"
workSheet1["A2"].Value = "Iron";
workSheet1["A2"].First().Hyperlink = "Iron";

// --== Across worksheet ==--
// Set hyperlink to cell A1 of Sheet2
workSheet1["A3"].Value = "A1 of Sheet2";
workSheet1["A3"].First().Hyperlink = "Sheet2!A1";

// Set hyperlink to define name "Hello" of Sheet2
workSheet1["A4"].Value = "Define name Hello of Sheet2";
workSheet1["A4"].First().Hyperlink = "Sheet2!Hello";

workBook.SaveAs("setHyperlinkAcrossWorksheet.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

なぜハイパーリンクに名前付き範囲を使用するのですか

名前付き範囲は、ワークシートの再構築に耐える、より保守性の高いハイパーリンクを提供します。 セルの名前を変更したり移動したりすると、名前付き範囲を指すハイパーリンクが自動的に更新されるため、Excelアプリケーションのリンク切れを減らすことができます。 このアプローチは、データの位置が変わる可能性のある動的なレポートでは特に価値があります。

Excel worksheet showing hyperlink setup with 'A1 of Sheet2' reference and defined name for cross-sheet linking

ワークブックとワークシートのスコープの違いは何ですか?

ワークブックスコープ(グローバル)の名前付き範囲は、ワークブック内のどのワークシートからもアクセス可能ですが、ワークシートスコープ名は、特定のワークシート内でのみアクセス可能です。 名前付き範囲へのハイパーリンクを作成する場合、ワークブックのスコープ名の方がより柔軟性がありますが、ワークシートのスコープ名の方が、シート固有のデータのカプセル化に適しています。 この区別は、複雑なExcelアプリケーションで複数のワークシートを管理するときに重要になります。


ファイル、FTP、電子メールのハイパーリンクはどのように作成しますか?

前述のハイパーリンクタイプに加えて、IronXLはFTP、ファイル、メールのハイパーリンクの作成もサポートしています。 これらの特殊なハイパーリンク・タイプは、Excelの自動化機能を単純なWebリンク以上に拡張します。

  • FTP: ftp:// で始まる - FTPサーバー上のファイルへのリンク
  • ファイル:file:///で始まる絶対パスを指定 - ローカルまたはネットワークファイルへのリンク
  • 電子メールmailto:で始まる - クリック可能なメールアドレスを作成します。

ご注意FTP とファイルハイパーリンクの両方で絶対パスを使用する必要があります。

:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-other-hyperlink.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Set hyperlink to open file sample.xlsx
workSheet["A1"].Value = "Open sample.xslx";
workSheet["A1"].First().Hyperlink = "ftp://C:/Users/sample.xlsx";

// Set hyperlink to open file sample.xlsx
workSheet["A2"].Value = "Open sample.xslx";
workSheet["A2"].First().Hyperlink = "file:///C:/Users/sample.xlsx";

// Set hyperlink to email example@gmail.com
workSheet["A3"].Value = "example@gmail.com";
workSheet["A3"].First().Hyperlink = "mailto:example@gmail.com";

workBook.SaveAs("setOtherHyperlink.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ファイルと FTP のハイパーリンクはいつ使い分けるべきですか?

ローカルファイルやWindowsファイルシステムからアクセスできるネットワーク共有ファイルには、ファイルハイパーリンク(file:///)を使用してください。 FTPハイパーリンク(ftp://)は、FTPサーバー上のファイルへのリンクに最適です。特に、ドキュメントが専用のファイルサーバーに保存されている企業環境では理想的です。 FTPリンクを使用する場合は、認証情報をプレーンテキストで送信する可能性があるため、セキュリティ上の影響を考慮してください。

Other Types of Hyperlinks

Mailtoリンクをクリックすると、どのメールクライアントが開きますか?

ユーザーがExcelのmailtoリンクをクリックすると、デフォルトの電子メールクライアントが開き、指定された電子メール宛に新しいメッセージが送信されます。 これは、Outlook、Thunderbird、およびシステムのデフォルトとして設定されているWebベースの電子メールクライアントで動作します。 You can enhance mailto links with subject lines and body text using standard mailto syntax: code>mailto:example@gmail.com?subject=Hello&body=Message.


Excelのセルからハイパーリンクを削除するには?

To remove a hyperlink, invoke the RemoveHyperlink method. このメソッドはセルオブジェクトからアクセスできます。 ハイパーリンクの削除は、データのクリーニングや、リンクされたレポートを静的なドキュメントに変換する場合に便利です。

:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-remove-hyperlink.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("setLinkHyperlink.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Remove hyperlink
workSheet["A1"].First().RemoveHyperlink();

workBook.SaveAs("removeHyperlink.xlsx");
Imports IronXL
Imports System.Linq

Private workBook As WorkBook = WorkBook.Load("setLinkHyperlink.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Remove hyperlink
workSheet("A1").First().RemoveHyperlink()

workBook.SaveAs("removeHyperlink.xlsx")
$vbLabelText   $csharpLabel

ハイパーリンクを削除するとセルの内容は削除されますか?

ハイパーリンクを削除しても、セルの値と書式は保持されます。 ハイパーリンク機能のみを削除し、表示テキストはそのまま残します。 これは、スプレッドシート・ファイル・タイプを変換するときや、アーカイブ用のドキュメントを準備するときに特に重要です。

一度に複数のハイパーリンクを削除するにはどうすればよいですか?

複数のハイパーリンクを効率的に削除するには、セルの範囲を繰り返し処理するか、LINQ を使用してハイパーリンクを含むセルを処理します:

// Remove all hyperlinks in column A
for (int i = 1; i <= 10; i++)
{
    var cell = workSheet.GetCellAt(i, 0);
    if (cell != null && !string.IsNullOrEmpty(cell.Hyperlink))
    {
        cell.RemoveHyperlink();
    }
}
// Remove all hyperlinks in column A
for (int i = 1; i <= 10; i++)
{
    var cell = workSheet.GetCellAt(i, 0);
    if (cell != null && !string.IsNullOrEmpty(cell.Hyperlink))
    {
        cell.RemoveHyperlink();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このアプローチは、インポートしたデータのクリーニングや、ハイパーリンクが適切でない可能性がある配布用のスプレッドシートを準備する場合に特に役立ちます。 より高度なセル操作テクニックについては、selecting and working with rangesのガイドをご覧ください。

よくある質問

C#を使用してExcelでハイパーリンクを作成するにはどうすればよいですか?

IronXL.Excelでは、セルにアクセスしてHyperlinkプロパティを設定することで、簡単にハイパーリンクを作成することができます。ワークブックをロードまたは作成し、GetCellAt()またはワークシート・インデクサーを使用して目的のセルを取得し、URL文字列をセルのHyperlinkプロパティに代入するだけです。IronXLは複雑なエクセルの書式設定をすべて自動的に行います。

Excelのセルに作成できるハイパーリンクの種類を教えてください。

IronXLはさまざまなタイプのハイパーリンクの作成をサポートしています: 外部ウェブサイトのウェブURL、ローカルファイルやFTPファイルを開くためのファイルパス、mailtoリンクによる電子メールアドレス、同じワークシート内のセル参照、定義された名前のセルへの参照などです。これらのハイパーリンクはすべてIronXLのHyperlinkプロパティを使って実装することができます。

Excelファイルにハイパーリンクを追加するには、Microsoft Officeをインストールする必要がありますか。

IronXLはMicrosoft OfficeやInteropアセンブリを必要とせず、独立して動作します。このライブラリには、ハイパーリンク付きのExcelファイルを.NETアプリケーションで直接作成、読み込み、変更するために必要なコンポーネントがすべて含まれており、Officeのインストールが不可能なサーバー環境に最適です。

Excelのハイパーリンクを作成するためにサポートされている.NETフレームワークは何ですか。

IronXLは、.NET Framework 4.6.2以降、.NET Core、.NET 5、6、7、8+など、幅広い.NETフレームワークをサポートしています。この幅広い互換性により、IronXLのハイパーリンク機能をレガシーアプリケーションと最新の.NETプロジェクトの両方に統合することができます。

既存のExcelファイルにハイパーリンクを追加できますか。

IronXLでは、新しいExcelファイルにも既存のExcelファイルにもハイパーリンクを追加することができます。WorkBook.Load()を使用して既存のワークブックをロードし、任意のセルや範囲にアクセスして、スプレッドシート内の他のコンテンツや書式に影響を与えることなくハイパーリンクを追加できます。ライブラリは既存のデータを保持しながら、新しいインタラクティブ要素を追加します。

特定のセルにアクセスしてハイパーリンクを追加するにはどうすればよいですか。

IronXLはハイパーリンクを追加するためにセルにアクセスする複数の方法を提供します。行や列のインデックスでGetCellAt()を使用したり、worksheet["A1"]のようなセルアドレスでワークシートインデクサーを使用したりできます。範囲の場合は、Firstメソッドを使用して最初のセルを取得します。このライブラリは、一括ハイパーリンク操作のための範囲選択もサポートしています。

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
準備はできましたか?
Nuget ダウンロード 1,765,830 | バージョン: 2025.12 リリース