Excelのテキストボックス(オートシェイプ)にハイパーリンクを設定するサンプルコードです。通常のURLと、同じExcelブック内の別シートへのリンクの方法を紹介します。
ハイパーリンク設定に使用するメソッドを先に紹介します。
Hyperlinks.Add(Anchor, Address, [SubAddress], [ScreenTip], [TextToDisplay])
- Anchor:ハイパーリンクを追加するオブジェクトやセル。
- Address:URLやファイルパス。同じドキュメント内の場合は空文字列 “” を設定。
- SubAddress:[オプション]ドキュメント内の位置。
- ScreenTip:[オプション]マウスオーバー時に表示されるツールチップテキスト。
- TextToDisplay:[オプション]シート上でユーザーに表示されるテキスト。
サンプルコード1:URLを指定
Hyperlinks.Addの第2引数にURLを記述することでハイパーリンクを設定できます。
// 参照の追加画面で Microsoft.Office.Interop.Excel を追加してください ★
using System;
using Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;
class Program
{
static void Main()
{
// Excel アプリケーションの初期化
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = true; // Excelを表示
// 新しいワークブックの作成
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet sheet = workbook.Sheets[1];
// ハイパーリンクを設定するセルを取得
Excel.Range cell = sheet.Cells[1, 1]; // A1セルを指定
// テキストボックスにハイパーリンクを設定 ★
sheet.Hyperlinks.Add(cell, "http://www.example.com", "", "example.comへのリンクです。", "example.comへ");
// ワークブックやアプリケーションの保存、閉じる処理は適宜行う
// 例: workbook.SaveAs("C:\path\to\your\file.xlsx");
// excelApp.Quit();
}
}
サンプル2:同じブック内の別シートを指定
Hyperlinks.Addの第2引数を空文字列として、第3引数に別シートへのリンクを記述します。
// ★参照の追加画面で Microsoft.Office.Interop.Excel を追加してください
using System;
using Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;
class Program
{
static void Main()
{
// Excel アプリケーションの初期化
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = true; // Excelを表示
// 新しいワークブックの作成
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet sheet1 = workbook.Sheets[1];
sheet1.Name = "Sheet1";
// 新しいワークシートの追加
Excel.Worksheet sheet2 = workbook.Sheets.Add(After: workbook.Sheets[workbook.Sheets.Count]);
sheet2.Name = "Sheet2";
// ハイパーリンクを設定するセルを取得
Excel.Range cell = sheet2.Cells[1, 1]; // A1セルを指定
// テキストボックスにハイパーリンクを設定
sheet2.Hyperlinks.Add(cell, "", "Sheet1!A1", "Sheet1のセルA1へのリンクです。", "Sheet1のセルA1");
// ワークブックやアプリケーションの保存、閉じる処理は適宜行う
// 例: workbook.SaveAs("C:\path\to\your\file.xlsx");
// excelApp.Quit();
}
}
まとめ
本記事では、C#でExcelのセルにハイパーリンクを設定する方法を紹介しました。