クリップボードへのコピー時に非表示のセルを除外したい

文書番号 : 33519     文書種別 : 使用方法     登録日 : 2012/11/14     最終更新日 : 2014/09/10
文書を印刷する
対象製品
SPREAD for Windows Forms 7.0J
詳細
デフォルトでは、非表示セルを含むセル範囲を選択して[Ctrl + 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

◎サンプルコード(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);}
}
関連情報
キーワード
「クリップボード」