作成日: 2022/10/19 最終更新日: 2022/10/19
文書種別
技術情報
詳細
専用の機能は提供しておりませんが、以下のようにクリップボード機能による対応が考えられます。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' コピー元シートの設定
Dim bc As New FarPoint.Win.Spread.CellType.ButtonCellType
bc.Text = "Click!"
FpSpread1.ActiveSheet.Cells(1, 0).CellType = bc
FpSpread1.Sheets(0).Cells(1, 1).Value = "test"
FpSpread1.Sheets(0).Cells(1, 1).BackColor = Color.LavenderBlush
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' fpSpread1のシートをコピーしてfpSpread2に追加する
copySheet(FpSpread1)
pasteSheet(FpSpread2)
End Sub
Private Sub pasteSheet(ByVal TestFpSpread As FarPoint.Win.Spread.FpSpread)
Dim spreadView As FarPoint.Win.Spread.SpreadView = TestFpSpread.GetRootWorkbook()
Dim action As FarPoint.Win.Spread.Action = spreadView.GetActionMap().[Get](FarPoint.Win.Spread.SpreadActions.ClipboardPasteSheet)
If TypeOf (action) Is FarPoint.Win.Spread.UndoRedo.UndoAction Then
action = (CType(action, FarPoint.Win.Spread.UndoRedo.UndoAction)).Clone()
End If
If (action IsNot Nothing) Then
If spreadView.AllowUndo AndAlso TypeOf (action) Is FarPoint.Win.Spread.UndoRedo.UndoAction Then
spreadView.UndoManager.PerformUndoAction(CType(action, FarPoint.Win.Spread.UndoRedo.UndoAction))
Else
action.PerformAction(spreadView)
End If
End If
End Sub
Private Sub copySheet(ByVal TestFpSpread As FarPoint.Win.Spread.FpSpread)
Dim spreadView As FarPoint.Win.Spread.SpreadView = TestFpSpread.GetRootWorkbook()
Dim action As FarPoint.Win.Spread.Action = spreadView.GetActionMap().[Get](FarPoint.Win.Spread.SpreadActions.ClipboardCopyActiveSheet)
If TypeOf (action) Is FarPoint.Win.Spread.UndoRedo.UndoAction Then
action = (CType(action, FarPoint.Win.Spread.UndoRedo.UndoAction)).Clone()
End If
If (action IsNot Nothing) Then
If spreadView.AllowUndo AndAlso TypeOf (action) Is FarPoint.Win.Spread.UndoRedo.UndoAction Then
spreadView.UndoManager.PerformUndoAction(CType(action, FarPoint.Win.Spread.UndoRedo.UndoAction))
Else
action.PerformAction(spreadView)
End If
End If
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// コピー元シートの設定
FarPoint.Win.Spread.CellType.ButtonCellType bc = new FarPoint.Win.Spread.CellType.ButtonCellType();
bc.Text = "Click!";
fpSpread1.ActiveSheet.Cells[1, 0].CellType = bc;
fpSpread1.Sheets[0].Cells[1, 1].Value = "test";
fpSpread1.Sheets[0].Cells[1, 1].BackColor = Color.LavenderBlush;
}
private void button1_Click(object sender, EventArgs e)
{
// fpSpread1のシートをコピーしてfpSpread2に追加する
copySheet(fpSpread1);
pasteSheet(fpSpread2);
}
private void pasteSheet(FarPoint.Win.Spread.FpSpread TestFpSpread)
{
FarPoint.Win.Spread.SpreadView spreadView = TestFpSpread.GetRootWorkbook();
FarPoint.Win.Spread.Action action = spreadView.GetActionMap().Get(FarPoint.Win.Spread.SpreadActions.ClipboardPasteSheet);
if ((action) is FarPoint.Win.Spread.UndoRedo.UndoAction)
action = ((FarPoint.Win.Spread.UndoRedo.UndoAction)action).Clone();
if ((action != null))
{
if (spreadView.AllowUndo && (action) is FarPoint.Win.Spread.UndoRedo.UndoAction)
spreadView.UndoManager.PerformUndoAction((FarPoint.Win.Spread.UndoRedo.UndoAction)action);
else
action.PerformAction(spreadView);
}
}
private void copySheet(FarPoint.Win.Spread.FpSpread TestFpSpread)
{
FarPoint.Win.Spread.SpreadView spreadView = TestFpSpread.GetRootWorkbook();
FarPoint.Win.Spread.Action action = spreadView.GetActionMap().Get(FarPoint.Win.Spread.SpreadActions.ClipboardCopyActiveSheet);
if ((action) is FarPoint.Win.Spread.UndoRedo.UndoAction)
action = ((FarPoint.Win.Spread.UndoRedo.UndoAction)action).Clone();
if ((action != null))
{
if (spreadView.AllowUndo && (action) is FarPoint.Win.Spread.UndoRedo.UndoAction)
spreadView.UndoManager.PerformUndoAction((FarPoint.Win.Spread.UndoRedo.UndoAction)action);
else
action.PerformAction(spreadView);
}
}
<実行イメージ>