クリップボードへのコピー時に非表示のセルを除外したい
対象製品
SPREAD for Windows Forms 7.0J
詳細
デフォルトでは、非表示セルを含むセル範囲を選択して[Ctrl + C]キーによりコピーした場合、非表示セルも含んだセル範囲のデータがコピーされます。
非表示のセルを除外してコピーするには[Ctrl + C]キーのデフォルトの入力マップをClipboardCopyAsStringSkipHidden(コピーに非表示の行や列を除外するアクション)を割り当てることで実現できます。
◎サンプルコード(VB)
◎サンプルコード(C#)
非表示のセルを除外してコピーするには[Ctrl + C]キーのデフォルトの入力マップをClipboardCopyAsStringSkipHidden(コピーに非表示の行や列を除外するアクション)を割り当てることで実現できます。
◎サンプルコード(VB)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' 自動フィルタリング機能を有効にします
FpSpread1.ActiveSheet.Columns(0).AllowAutoFilter = True
FpSpread1.ActiveSheet.DefaultStyle.CellType = New FarPoint.Win.Spread.CellType.TextCellType
FpSpread1.ActiveSheet.SetText(0, 0, "Fender")
FpSpread1.ActiveSheet.SetText(1, 0, "Gibson")
FpSpread1.ActiveSheet.SetText(2, 0, "Fender")
FpSpread1.ActiveSheet.SetText(3, 0, "Ibanez")
FpSpread1.ActiveSheet.SetText(4, 0, "Gibson")
FpSpread1.ActiveSheet.SetText(5, 0, "YAMAHA")
FpSpread1.ActiveSheet.SetText(0, 1, "AST-100 DMC")
FpSpread1.ActiveSheet.SetText(1, 1, "Les Paul Standard Double Cut Plus")
FpSpread1.ActiveSheet.SetText(2, 1, "ST58-70TX")
FpSpread1.ActiveSheet.SetText(3, 1, "AGS83B")
FpSpread1.ActiveSheet.SetText(4, 1, "Les Paul Supreme")
FpSpread1.ActiveSheet.SetText(5, 1, "ATTITUDE-Limited II")
FpSpread1.ActiveSheet.SetColumnWidth(0, 90)
FpSpread1.ActiveSheet.SetColumnWidth(1, 210)
' [Ctrl]+[C]キーで非表示行のコピーを除外するように設定します
Dim im As FarPoint.Win.Spread.InputMap
im = FpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.C, Keys.Control), FarPoint.Win.Spread.SpreadActions.ClipboardCopyAsStringSkipHidden)
End Sub
' 自動フィルタリング機能を有効にします
FpSpread1.ActiveSheet.Columns(0).AllowAutoFilter = True
FpSpread1.ActiveSheet.DefaultStyle.CellType = New FarPoint.Win.Spread.CellType.TextCellType
FpSpread1.ActiveSheet.SetText(0, 0, "Fender")
FpSpread1.ActiveSheet.SetText(1, 0, "Gibson")
FpSpread1.ActiveSheet.SetText(2, 0, "Fender")
FpSpread1.ActiveSheet.SetText(3, 0, "Ibanez")
FpSpread1.ActiveSheet.SetText(4, 0, "Gibson")
FpSpread1.ActiveSheet.SetText(5, 0, "YAMAHA")
FpSpread1.ActiveSheet.SetText(0, 1, "AST-100 DMC")
FpSpread1.ActiveSheet.SetText(1, 1, "Les Paul Standard Double Cut Plus")
FpSpread1.ActiveSheet.SetText(2, 1, "ST58-70TX")
FpSpread1.ActiveSheet.SetText(3, 1, "AGS83B")
FpSpread1.ActiveSheet.SetText(4, 1, "Les Paul Supreme")
FpSpread1.ActiveSheet.SetText(5, 1, "ATTITUDE-Limited II")
FpSpread1.ActiveSheet.SetColumnWidth(0, 90)
FpSpread1.ActiveSheet.SetColumnWidth(1, 210)
' [Ctrl]+[C]キーで非表示行のコピーを除外するように設定します
Dim im As FarPoint.Win.Spread.InputMap
im = FpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.C, Keys.Control), FarPoint.Win.Spread.SpreadActions.ClipboardCopyAsStringSkipHidden)
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// 自動フィルタリング機能を有効にします
fpSpread1.ActiveSheet.Columns[0].AllowAutoFilter = true;
fpSpread1.ActiveSheet.DefaultStyle.CellType = new FarPoint.Win.Spread.CellType.TextCellType();
fpSpread1.ActiveSheet.SetText(0, 0, "Fender");
fpSpread1.ActiveSheet.SetText(1, 0, "Gibson");
fpSpread1.ActiveSheet.SetText(2, 0, "Fender");
fpSpread1.ActiveSheet.SetText(3, 0, "Ibanez");
fpSpread1.ActiveSheet.SetText(4, 0, "Gibson");
fpSpread1.ActiveSheet.SetText(5, 0, "YAMAHA");
fpSpread1.ActiveSheet.SetText(0, 1, "AST-100 DMC");
fpSpread1.ActiveSheet.SetText(1, 1, "Les Paul Standard Double Cut Plus");
fpSpread1.ActiveSheet.SetText(2, 1, "ST58-70TX");
fpSpread1.ActiveSheet.SetText(3, 1, "AGS83B");
fpSpread1.ActiveSheet.SetText(4, 1, "Les Paul Supreme");
fpSpread1.ActiveSheet.SetText(5, 1, "ATTITUDE-Limited II");
fpSpread1.ActiveSheet.SetColumnWidth(0, 90);
fpSpread1.ActiveSheet.SetColumnWidth(1, 210);
// [Ctrl]+[C]キーで非表示行のコピーを除外するように設定します
FarPoint.Win.Spread.InputMap im;
im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
im.Put(new FarPoint.Win.Spread.Keystroke(Keys.C, Keys.Control), FarPoint.Win.Spread.SpreadActions.ClipboardCopyAsStringSkipHidden);}
}
{
// 自動フィルタリング機能を有効にします
fpSpread1.ActiveSheet.Columns[0].AllowAutoFilter = true;
fpSpread1.ActiveSheet.DefaultStyle.CellType = new FarPoint.Win.Spread.CellType.TextCellType();
fpSpread1.ActiveSheet.SetText(0, 0, "Fender");
fpSpread1.ActiveSheet.SetText(1, 0, "Gibson");
fpSpread1.ActiveSheet.SetText(2, 0, "Fender");
fpSpread1.ActiveSheet.SetText(3, 0, "Ibanez");
fpSpread1.ActiveSheet.SetText(4, 0, "Gibson");
fpSpread1.ActiveSheet.SetText(5, 0, "YAMAHA");
fpSpread1.ActiveSheet.SetText(0, 1, "AST-100 DMC");
fpSpread1.ActiveSheet.SetText(1, 1, "Les Paul Standard Double Cut Plus");
fpSpread1.ActiveSheet.SetText(2, 1, "ST58-70TX");
fpSpread1.ActiveSheet.SetText(3, 1, "AGS83B");
fpSpread1.ActiveSheet.SetText(4, 1, "Les Paul Supreme");
fpSpread1.ActiveSheet.SetText(5, 1, "ATTITUDE-Limited II");
fpSpread1.ActiveSheet.SetColumnWidth(0, 90);
fpSpread1.ActiveSheet.SetColumnWidth(1, 210);
// [Ctrl]+[C]キーで非表示行のコピーを除外するように設定します
FarPoint.Win.Spread.InputMap im;
im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
im.Put(new FarPoint.Win.Spread.Keystroke(Keys.C, Keys.Control), FarPoint.Win.Spread.SpreadActions.ClipboardCopyAsStringSkipHidden);}
}
関連情報
- クリップボードのデータからペースト先のセル範囲を取得する方法
- ヘッダ部のコピーだけ有効にし、ヘッダ部への文字の貼り付けを無効にする方法
- オペレーションモードを行選択モード(RowMode)にするとセルの値をクリップボードへコピーできません
- セルの値のみのペースト機能を実装する方法
- 通常モードのセルに対するデータ貼り付け(CopyAndPaste)のタイミングを取得する方法
キーワード
「クリップボード」