作成日: 2022/01/21 最終更新日: 2022/02/24
文書種別
使用方法
詳細
アクティブセルを設定後に、選択範囲を再設定することで選択範囲を解除せずアクティブセルを変更することが可能です。
以下サンプルコードでは、選択範囲から文字列を検索してアクティブセルを再設定しています。
◎サンプルコード(VB)
◎サンプルコード(C#)
以下サンプルコードでは、選択範囲から文字列を検索してアクティブセルを再設定しています。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 複数範囲選択の許可
FpSpread1.ActiveSheet.SelectionPolicy = FarPoint.Win.Spread.Model.SelectionPolicy.MultiRange
' データの設定
For i = 0 To FpSpread1.ActiveSheet.RowCount - 1
For j = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
FpSpread1.ActiveSheet.SetValue(i, j, String.Format("R{0}C{1}", i, j))
Next
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' 検索対象文字列
Dim target As String = "R2C2"
' 選択範囲の取得
Dim ranges As FarPoint.Win.Spread.Model.CellRange() = FpSpread1.ActiveSheet.GetSelections()
For Each range In ranges
For i = range.Row To range.Row + range.RowCount - 1
For j = range.Column To range.Column + range.ColumnCount - 1
If CStr(FpSpread1.ActiveSheet.GetValue(i, j)) = target Then
' 検索に成功した場合、該当セルをアクティブセルに設定
FpSpread1.ActiveSheet.SetActiveCell(i, j)
' 選択状態の復元
For Each rg In ranges
FpSpread1.ActiveSheet.AddSelection(rg.Row, rg.Column, rg.RowCount, rg.ColumnCount)
Next
' 処理の停止
Return
End If
Next
Next
Next
End Sub
' 複数範囲選択の許可
FpSpread1.ActiveSheet.SelectionPolicy = FarPoint.Win.Spread.Model.SelectionPolicy.MultiRange
' データの設定
For i = 0 To FpSpread1.ActiveSheet.RowCount - 1
For j = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
FpSpread1.ActiveSheet.SetValue(i, j, String.Format("R{0}C{1}", i, j))
Next
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' 検索対象文字列
Dim target As String = "R2C2"
' 選択範囲の取得
Dim ranges As FarPoint.Win.Spread.Model.CellRange() = FpSpread1.ActiveSheet.GetSelections()
For Each range In ranges
For i = range.Row To range.Row + range.RowCount - 1
For j = range.Column To range.Column + range.ColumnCount - 1
If CStr(FpSpread1.ActiveSheet.GetValue(i, j)) = target Then
' 検索に成功した場合、該当セルをアクティブセルに設定
FpSpread1.ActiveSheet.SetActiveCell(i, j)
' 選択状態の復元
For Each rg In ranges
FpSpread1.ActiveSheet.AddSelection(rg.Row, rg.Column, rg.RowCount, rg.ColumnCount)
Next
' 処理の停止
Return
End If
Next
Next
Next
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// 複数範囲選択の許可
fpSpread1.ActiveSheet.SelectionPolicy = FarPoint.Win.Spread.Model.SelectionPolicy.MultiRange;
// データの設定
for (var i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
for (var j = 0; j < fpSpread1.ActiveSheet.ColumnCount; j++)
{
fpSpread1.ActiveSheet.SetValue(i, j, string.Format("R{0}C{1}", i, j));
}
}
}
private void button1_Click(object sender, EventArgs e)
{
// 検索対象文字列
string target = "R2C2";
// 選択範囲の取得
FarPoint.Win.Spread.Model.CellRange[] ranges = fpSpread1.ActiveSheet.GetSelections();
// 文字列の検索
foreach (var range in ranges)
{
for (var i = range.Row; i < range.Row + range.RowCount; i++)
{
for (var j = range.Column; j < range.Column + range.ColumnCount; j++)
{
if ((string)fpSpread1.ActiveSheet.GetValue(i, j) == target)
{
// 検索に成功した場合、該当セルをアクティブセルに設定
fpSpread1.ActiveSheet.SetActiveCell(i, j);
// 選択状態の復元
foreach (var rg in ranges)
{
fpSpread1.ActiveSheet.AddSelection(rg.Row, rg.Column, rg.RowCount, rg.ColumnCount);
}
// 処理の停止
return;
}
}
}
}
}
{
// 複数範囲選択の許可
fpSpread1.ActiveSheet.SelectionPolicy = FarPoint.Win.Spread.Model.SelectionPolicy.MultiRange;
// データの設定
for (var i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
for (var j = 0; j < fpSpread1.ActiveSheet.ColumnCount; j++)
{
fpSpread1.ActiveSheet.SetValue(i, j, string.Format("R{0}C{1}", i, j));
}
}
}
private void button1_Click(object sender, EventArgs e)
{
// 検索対象文字列
string target = "R2C2";
// 選択範囲の取得
FarPoint.Win.Spread.Model.CellRange[] ranges = fpSpread1.ActiveSheet.GetSelections();
// 文字列の検索
foreach (var range in ranges)
{
for (var i = range.Row; i < range.Row + range.RowCount; i++)
{
for (var j = range.Column; j < range.Column + range.ColumnCount; j++)
{
if ((string)fpSpread1.ActiveSheet.GetValue(i, j) == target)
{
// 検索に成功した場合、該当セルをアクティブセルに設定
fpSpread1.ActiveSheet.SetActiveCell(i, j);
// 選択状態の復元
foreach (var rg in ranges)
{
fpSpread1.ActiveSheet.AddSelection(rg.Row, rg.Column, rg.RowCount, rg.ColumnCount);
}
// 処理の停止
return;
}
}
}
}
}