作成日: 2024/02/21 最終更新日: 2024/02/21
文書種別
技術情報
詳細
12.0Jまではハイパーリンクを設定する場合、ハイパーリンク型セルを使用する必要がありましたが、15.0J以降の新しいスタイルシステムのSPREADでは、IHyperlinksインタフェースのAddメソッドでセルに直接ハイパーリンクを設定することができます。ここでは3つの使用例をご紹介します。
・Webページを表示するURLを設定する
以下の例ではデータテーブルに設定された文字列をハイパーリンクのURLとして設定しています。
<実行イメージ>
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' データの作成
Dim dt As New DataTable("Test")
dt.Columns.Add("ColA", GetType(String))
dt.Columns.Add("ColB", GetType(String))
dt.Rows.Add("製品紹介", "https://www.grapecity.co.jp/developer/spread-winforms")
dt.Rows.Add("15.0J 新機能", "https://docs.grapecity.com/help/spread-winforms-15/#spwin_newfeature.html")
dt.Rows.Add("セルにハイパーリンクを追加", "https://docs.grapecity.com/help/spread-winforms-15/#adding-hyperlink-in-cell.html")
dt.AcceptChanges()
' シートの設定
FpSpread1.ActiveSheet.DataAutoCellTypes = False
FpSpread1.ActiveSheet.DataSource = dt
' セルにハイパーリンクを設定する
For i = 0 To FpSpread1.ActiveSheet.RowCount - 1
FpSpread1.AsWorkbook().ActiveSheet.Hyperlinks.Add(i, 1, FpSpread1.ActiveSheet.Cells(i, 1).Text,,, "該当ページはこちら")
Next
' 列幅の最適化
FpSpread1.AsWorkbook().ActiveSheet.Columns.AutoFit()
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// データの作成
DataTable dt = new DataTable("Test");
dt.Columns.Add("ColA", typeof(string));
dt.Columns.Add("ColB", typeof(string));
dt.Rows.Add("製品紹介", "https://www.grapecity.co.jp/developer/spread-winforms");
dt.Rows.Add("15.0J 新機能", "https://docs.grapecity.com/help/spread-winforms-15/#spwin_newfeature.html");
dt.Rows.Add("セルにハイパーリンクを追加", "https://docs.grapecity.com/help/spread-winforms-15/#adding-hyperlink-in-cell.html");
dt.AcceptChanges();
// シートの設定
fpSpread1.ActiveSheet.DataAutoCellTypes = false;
fpSpread1.ActiveSheet.DataSource = dt;
// セルにハイパーリンクを設定する
for (var i = 0; i <= fpSpread1.ActiveSheet.RowCount - 1; i++)
fpSpread1.AsWorkbook().ActiveSheet.Hyperlinks.Add(i, 1, fpSpread1.ActiveSheet.Cells[i, 1].Text,null,null, "該当ページはこちら");
// 列幅の最適化
fpSpread1.AsWorkbook().ActiveSheet.Columns.AutoFit();
}
・SPREAD内のセルやセル範囲を参照する
次の例では、セルにハイパーリンクで参照するセル範囲を設定しています。
<実行イメージ>
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FpSpread1.Sheets.Count = 2
' データの設定
For s = 0 To FpSpread1.Sheets.Count - 1
FpSpread1.Sheets(s).RowCount = 20
FpSpread1.Sheets(s).ColumnCount = 5
For i = 0 To FpSpread1.Sheets(s).RowCount - 1
For j = 1 To FpSpread1.Sheets(s).ColumnCount - 1
FpSpread1.Sheets(s).SetValue(i, j, $"S{s}R{i}C{j}")
Next
Next
Next
' セルにハイパーリンクを設定する
FpSpread1.AsWorkbook().Worksheets(0).Hyperlinks.Add("A1", "", "Sheet2!1:1", "Sheet2の1行目を選択します", "Sheet2!1:1")
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
fpSpread1.Sheets.Count = 2;
// データの設定
for (var s = 0; s <= fpSpread1.Sheets.Count - 1; s++)
{
fpSpread1.Sheets[s].RowCount = 20;
fpSpread1.Sheets[s].ColumnCount = 5;
for (var i = 0; i <= fpSpread1.Sheets[s].RowCount - 1; i++)
{
for (var j = 1; j <= fpSpread1.Sheets[s].ColumnCount - 1; j++)
fpSpread1.Sheets[s].SetValue(i, j, $"S{s}R{i}C{j}");
}
}
// セルにハイパーリンクを設定する
fpSpread1.AsWorkbook().Worksheets[0].Hyperlinks.Add("A1", "", "Sheet2!1:1", "Sheet2の1行目を選択します", "Sheet2!1:1");
}
・メールアドレスを設定してセルクリックで下書きメールを作成する
次の例では、セルクリックにより、設定アドレス宛ての下書きメールを作成するハイパーリンクを設定します。
<実行イメージ>
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FpSpread1.ActiveSheet.RowCount = 3
FpSpread1.ActiveSheet.ColumnCount = 2
With FpSpread1.AsWorkbook().ActiveSheet
.Cells("A1").Text = "田中さん"
.Cells("A2").Text = "佐藤さん"
.Cells("A3").Text = "高橋さん"
' セルにハイパーリンクを設定する
.Hyperlinks.Add("B1", "mailto:tanaka@xxx.com", "", "メールを作成します", .Cells("A1").Text & "宛")
.Hyperlinks.Add("B2", "mailto:sato@xxx.com", "", "メールを作成します", .Cells("A2").Text & "宛")
.Hyperlinks.Add("B3", "mailto:takahashi@xxx.com", "", "メールを作成します", .Cells("A3").Text & "宛")
End With
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
fpSpread1.ActiveSheet.RowCount = 3;
fpSpread1.ActiveSheet.ColumnCount = 2;
var sp_sheet = fpSpread1.AsWorkbook().ActiveSheet;
sp_sheet.Cells["A1"].Text = "田中さん";
sp_sheet.Cells["A2"].Text = "佐藤さん";
sp_sheet.Cells["A3"].Text = "高橋さん";
// セルにハイパーリンクを設定にする
fpSpread1.AsWorkbook().ActiveSheet.Hyperlinks.Add("B1", "mailto:tanaka@xxx.com", "", "メールを作成します", sp_sheet.Cells["A1"].Text + "宛");
fpSpread1.AsWorkbook().ActiveSheet.Hyperlinks.Add("B2", "mailto:sato@xxx.com", "", "メールを作成します", sp_sheet.Cells["A2"].Text + "宛");
fpSpread1.AsWorkbook().ActiveSheet.Hyperlinks.Add("B3", "mailto:takahashi@xxx.com", "", "メールを作成します", sp_sheet.Cells["A3"].Text + "宛");
}