[ELTB04627]数値型セルへの入力時にマイナスの値を貼り付けできない場合がある
対象製品
El Tabelle for .NET 3.0J
発生環境
動作保証環境と同じ
詳細
数値型セルにマイナスの値(例:-12345)をクリップボードから貼り付けできない場合があります。
具体的には、セルが非編集の場合には貼り付けできますが、セルが編集状態の場合は貼り付けできません。このため、常時入力モード(Sheet.EditType=AlwaysEdit)では、数値型セルにマイナスの値を入力できません。
具体的には、セルが非編集の場合には貼り付けできますが、セルが編集状態の場合は貼り付けできません。このため、常時入力モード(Sheet.EditType=AlwaysEdit)では、数値型セルにマイナスの値を入力できません。
回避方法
この現象は、数値型セルの仕様によるものです。
次の操作を行うことで現象を軽減できる場合があります。
・数値以外が入力された場合に値を反転する
[Visual Basic]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'数値型セルを設定する
Sheet1(0, 0).Editor = New GrapeCity.Win.ElTabelle.Editors.NumberEditor
'クリップボード操作を許可する
Sheet1.AllowClipboard = True
End Sub
Private Sub Sheet1_CellNotify(ByVal sender As Object, ByVal e As GrapeCity.Win.ElTabelle.CellNotifyEventArgs) Handles Sheet1.CellNotify
'数値型セルの場合
If TypeOf Sheet1.ActiveCell.Editor Is GrapeCity.Win.ElTabelle.Editors.NumberEditor Then
'不正な値(数値以外)が入力された場合
If e.Name = GrapeCity.Win.ElTabelle.CellNotifyEvents.InvalidInput Then
If CType(Sheet1.ActiveCell.Value, Integer) >= 0 Then
'アクティブセルの値をマイナスに設定する
Sheet1.ActiveCell.Value = -(CType(Sheet1.ActiveCell.Value, Integer))
End If
End If
End If
End Sub
次の操作を行うことで現象を軽減できる場合があります。
・数値以外が入力された場合に値を反転する
[Visual Basic]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'数値型セルを設定する
Sheet1(0, 0).Editor = New GrapeCity.Win.ElTabelle.Editors.NumberEditor
'クリップボード操作を許可する
Sheet1.AllowClipboard = True
End Sub
Private Sub Sheet1_CellNotify(ByVal sender As Object, ByVal e As GrapeCity.Win.ElTabelle.CellNotifyEventArgs) Handles Sheet1.CellNotify
'数値型セルの場合
If TypeOf Sheet1.ActiveCell.Editor Is GrapeCity.Win.ElTabelle.Editors.NumberEditor Then
'不正な値(数値以外)が入力された場合
If e.Name = GrapeCity.Win.ElTabelle.CellNotifyEvents.InvalidInput Then
If CType(Sheet1.ActiveCell.Value, Integer) >= 0 Then
'アクティブセルの値をマイナスに設定する
Sheet1.ActiveCell.Value = -(CType(Sheet1.ActiveCell.Value, Integer))
End If
End If
End If
End Sub
この文書は、以前は次のFAQ IDで公開されていました : 4806