Imports System.Windows.Forms
Imports System.Drawing
Imports FunCommon.IMFunction
Imports FunCommon
Imports FunCommon.CommonFunction
Imports FunCommon.AppFunction
Public Module SpreadFunction
Public pintColorChangeRow As Integer
Public pintColorChangeCol As Integer
Public blnCellClickFlg As Boolean
Public Function pfSetEnterToNone(ByVal Fpspread1 As FarPoint.Win.Spread.FpSpread)
' InputMap オブジェクトを作成します。
Dim im As FarPoint.Win.Spread.InputMap
' 編集中セルの Enter キー押下げによる動作を設定します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' 次のセル(左から右、上から下の順)に移動します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.StartEditing)
' アクティブセルの Enter キー押下げによる動作を設定します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
' 次のセル(左から右、上から下の順)に移動します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.StartEditing)
End Function
Public Function pfSetEnterToTab(ByVal Fpspread1 As FarPoint.Win.Spread.FpSpread)
' InputMap オブジェクトを作成します。
Dim im As FarPoint.Win.Spread.InputMap
' 編集中セルの Enter キー押下げによる動作を設定します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' 次のセル(左から右、上から下の順)に移動します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap)
' アクティブセルの Enter キー押下げによる動作を設定します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
' 次のセル(左から右、上から下の順)に移動します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap)
End Function
Public Function pfSetEnterToNextRow(ByVal Fpspread1 As FarPoint.Win.Spread.FpSpread)
' InputMap オブジェクトを作成します。
Dim im As FarPoint.Win.Spread.InputMap
' 編集中セルの Enter キー押下げによる動作を設定します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' 次のセル(左から右、上から下の順)に移動します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextRow)
' アクティブセルの Enter キー押下げによる動作を設定します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
' 次のセル(左から右、上から下の順)に移動します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextRow)
End Function
Public Function pfSpreadInit(ByVal Fpspread1 As FarPoint.Win.Spread.FpSpread) As Boolean
Dim tipfont As New Font("Arial", 11)
' シートの値、スタイルをリセットします。
Fpspread1.Reset()
' シートの選択を単一選択モード(リストボックスのように動作します。)に設定します。
Fpspread1.Sheets(0).OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect
' 行ヘッダの AutoText をブランクに設定します。
Fpspread1.Sheets(0).RowHeader.AutoText = FarPoint.Win.Spread.HeaderAutoText.Blank
' 1行おきのテキストの色、背景色を設定します。
Fpspread1.Sheets(0).AlternatingRows.Count = 2
Fpspread1.Sheets(0).AlternatingRows(0).BackColor = Color.FromArgb(192, 192, 255)
Fpspread1.Sheets(0).AlternatingRows(0).ForeColor = Color.FromArgb(0, 0, 0)
Fpspread1.Sheets(0).AlternatingRows(1).BackColor = Color.FromArgb(255, 255, 192)
Fpspread1.Sheets(0).AlternatingRows(1).ForeColor = Color.FromArgb(0, 0, 0)
' デフォルト行の高さを設定します。
Fpspread1.Sheets(0).Rows.Default.Height = 30
' テキストチップを固定表示に設定します。
Fpspread1.TextTipPolicy = FarPoint.Win.Spread.TextTipPolicy.Fixed
' 必要な場合のみスクロールバーを表示します。
Fpspread1.HorizontalScrollBarPolicy = FarPoint.Win.Spread.ScrollBarPolicy.AsNeeded
' 列ヘッダテキストの自動取得を無効にします。
Fpspread1.Sheets(0).DataAutoHeadings = False
' 列ヘッダテキストを設定します。
Fpspread1.Sheets(0).ColumnHeader.Cells(0, 1).Text = "Company"
' 指定した列を非表示にします。
Fpspread1.Sheets(0).Columns(0).Visible = False
Fpspread1.Sheets(0).Columns(1).Width = Fpspread1.Width - 50
End Function
Public Function pfSetTabNextControl(ByVal Fpspread1 As FarPoint.Win.Spread.FpSpread) As Boolean
' InputMap オブジェクトを作成します。
Dim im As FarPoint.Win.Spread.InputMap
' セル編集状態の InputMap を取得します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' [Tab]キー押下げによる動作をなしに設定します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.None), FarPoint.Win.Spread.SpreadActions.None)
' Spread コントロールがフォーカスを取得している状態の InputMap を取得します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
' [Tab]キー押下げによる動作をなしに設定します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.None), FarPoint.Win.Spread.SpreadActions.None)
' セル編集状態の InputMap を取得します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' [Shift]+[Tab]キー押下げによる動作をなしに設定します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.Shift), FarPoint.Win.Spread.SpreadActions.None)
' Spread コントロールがフォーカスを取得している状態の InputMap を取得します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
' [Shift]+[Tab]キー押下げによる動作をなしに設定します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.Shift), FarPoint.Win.Spread.SpreadActions.None)
End Function
Public Function pfSetTabNextCell(ByVal Fpspread1 As FarPoint.Win.Spread.FpSpread) As Boolean
' InputMap オブジェクトを作成します。
Dim im As FarPoint.Win.Spread.InputMap
' セル編集状態の InputMap を取得します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' [Tab]キー押下げによる動作を「右のセル(列)に移動」に設定します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap)
' Spread コントロールがフォーカスを取得している状態の InputMap を取得します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
' [Tab]キー押下げによる動作を「右のセル(列)に移動」に設定します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap)
' セル編集状態の InputMap を取得します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' [Shift]+[Tab]キー押下げによる動作を「左のセル(列)に移動」に設定します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.Shift), FarPoint.Win.Spread.SpreadActions.MoveToPreviousColumnWrap)
' Spread コントロールがフォーカスを取得している状態の InputMap を取得します。
im = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
' [Shift]+[Tab]キー押下げによる動作を「左のセル(列)に移動」に設定します。
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.Shift), FarPoint.Win.Spread.SpreadActions.MoveToPreviousColumnWrap)
End Function
Public Function pfSetSelectRange(ByVal Fpspread1 As FarPoint.Win.Spread.FpSpread) As Boolean
' 選択されたセルブロックのスタイルはSelectionForeColorとSelectionBackColorを使用します。
Fpspread1.ActiveSheet.SelectionStyle = FarPoint.Win.Spread.SelectionStyles.SelectionColors
' 選択されたセルブロックの背景色を設定します。
Fpspread1.ActiveSheet.SelectionBackColor = Color.LightBlue
' 選択されたセルブロックのテキスト色を設定します。
Fpspread1.ActiveSheet.SelectionForeColor = Color.Red
' セルにテキストを設定します。
Fpspread1.ActiveSheet.SetValue(1, 1, "選択セル")
' セルブロックを選択します。
Fpspread1.ActiveSheet.AddSelection(0, 0, 3, 3)
End Function
Public Function pfSetActionKey(ByVal Fpspread1 As FarPoint.Win.Spread.FpSpread) As Boolean
' 1番目のセル(左上端)のセル型を日付時刻型に設定します。
Fpspread1.ActiveSheet.Cells(0, 0).CellType = New FarPoint.Win.Spread.CellType.DateTimeCellType
' ショートカットキーを設定する InputMap を作成します。
Dim f2 As FarPoint.Win.Spread.InputMap
Dim f3 As FarPoint.Win.Spread.InputMap
Dim f4 As FarPoint.Win.Spread.InputMap
' セル編集状態の InputMap を取得します。
f2 = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' セルのデータを消去するシートカットキーを[C]キーに設定します。
f2.Put(New FarPoint.Win.Spread.Keystroke(Keys.C, Keys.None), FarPoint.Win.Spread.SpreadActions.ClearCell)
' セル編集状態の InputMap を取得します。
f3 = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' 現在の日付を表示するシートカットキーを[D]キーに設定します。
f3.Put(New FarPoint.Win.Spread.Keystroke(Keys.D, Keys.None), FarPoint.Win.Spread.SpreadActions.DateTimeNow)
' セル編集状態の InputMap を取得します。
f4 = Fpspread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' ポップアップカレンダーを表示するシートカットキーを[P]キーに設定します。
f4.Put(New FarPoint.Win.Spread.Keystroke(Keys.P, Keys.None), FarPoint.Win.Spread.SpreadActions.ShowSubEditor)
End Function
' @(f)
'
' 機能 : spreadのセルを選択する
'
' 引き数 : Fpspread1 操作のspread
' : intRow 操作の行
' : intCol 操作の列
' 返り値 : true 成功 false 失敗
'
' 機能説明 : spreadのセルを選択する
'
' 備考 : 作成者 ××× 04/10/28
Public Function pfSetActiveCell(ByVal Fpspread1 As FarPoint.Win.Spread.FpSpread, ByVal intRow As Integer, ByVal intCol As Integer) As Boolean
Try
Fpspread1.ActiveSheet.SetActiveCell(intRow, intCol)
Fpspread1.ActiveSheet.Models.Selection.ClearSelection()
Fpspread1.ActiveSheet.Models.Selection.AddSelection(intRow, intCol, 1, 1)
Fpspread1.ActiveSheet.SelectionStyle = FarPoint.Win.Spread.SelectionStyles.None
Fpspread1.EditModeReplace = True
Fpspread1.EditMode = True
Return True
Catch ex As Exception
Return False
End Try
End Function
' @(f)
'
' 機能 : spreadのセルを選択する
'
' 引き数 : Fpspread1 操作のspread
' : intRow 操作の行
' : intCol 操作の列
' 返り値 : true 成功 false 失敗
'
' 機能説明 : spreadのセルを選択する
'
' 備考 : 作成者 ××× 04/10/28
Public Function pfSetActiveCellForProduce(ByVal Fpspread1 As FarPoint.Win.Spread.FpSpread, ByVal intRow As Integer, ByVal intCol As Integer) As Boolean
Try
Fpspread1.ActiveSheet.SetActiveCell(intRow, intCol)
Fpspread1.ActiveSheet.Models.Selection.ClearSelection()
Fpspread1.ActiveSheet.Models.Selection.AddSelection(intRow, intCol, 1, 1)
Fpspread1.ActiveSheet.SelectionStyle = FarPoint.Win.Spread.SelectionStyles.None
'Fpspread1.EditModeReplace = True
Fpspread1.EditMode = True
Return True
Catch ex As Exception
Return False
End Try
End Function
' @(f)
'
' 機能 : spreadのフォーカスを離れる処理
'
' 引き数 : spdTemp 操作のspread
' : intStartRow 操作の開始行
' : intStartCol 操作の開始列
' : intEndRow 操作の終了行
' : intEndCol 操作の終了列
' 返り値 : true 成功 false 失敗
'
' 機能説明 : spreadのフォーカスを離れる処理
'
' 備考 : 作成者 ××× 04/10/28
Public Sub psSetSpreadLostFocus(ByVal spdTemp As FarPoint.Win.Spread.FpSpread, ByVal intStartRow As Integer, ByVal intStartCol As Integer, ByVal intEndRow As Integer, ByVal intEndCol As Integer)
Dim objInputMap As FarPoint.Win.Spread.InputMap
objInputMap = spdTemp.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
If spdTemp.ActiveSheet.ActiveColumnIndex = intEndCol And spdTemp.ActiveSheet.ActiveRowIndex = intEndRow Then
objInputMap.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.None), FarPoint.Win.Spread.SpreadActions.None)
ElseIf spdTemp.ActiveSheet.ActiveColumnIndex = intStartCol And spdTemp.ActiveSheet.ActiveRowIndex = intStartRow Then
objInputMap.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.Shift), FarPoint.Win.Spread.SpreadActions.None)
objInputMap.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap)
Else
objInputMap.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap)
objInputMap.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.Shift), FarPoint.Win.Spread.SpreadActions.MoveToPreviousColumnWrap)
End If
End Sub
' @(f)
'
' 機能 : spreadのTABとSHIFT+TABを押すの時,実行しない
'
' 引き数 : FpSpread1 操作のspread
' 返り値 :
'
' 機能説明 : spreadのTABとSHIFT+TABを押すの時,実行しない
'
' 備考 : 作成者 ××× 04/10/28
Public Sub psEnableTabShiftTab(ByVal FpSpread1 As FarPoint.Win.Spread.FpSpread)
Dim oo As FarPoint.Win.Spread.InputMap
''Dim pp As FarPoint.Win.Spread.InputMap
oo = FpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
oo.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.None), FarPoint.Win.Spread.SpreadActions.StopEditing)
' セルのデータを消去するシートカットキーを[C]キーに設定します。
oo.Put(New FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.Shift), FarPoint.Win.Spread.SpreadActions.StopEditing)
End Sub
' @(f)
'
' 機能 : spread中に、「delete」キーを押す時、セル内容をクリア
'
' 引き数 : spdTemp 操作のspread
' 返り値 :
'
' 機能説明 :spread中に、「delete」キーを押す時、セル内容をクリア
'
' 備考 : 作成者 ××× 04/10/28
Public Sub psSetDelActionKey(ByVal spdTemp As FarPoint.Win.Spread.FpSpread)
Dim input1 As FarPoint.Win.Spread.InputMap
input1 = spdTemp.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
input1.Put(New FarPoint.Win.Spread.Keystroke(Keys.Delete, Keys.None), FarPoint.Win.Spread.SpreadActions.ClearCell)
End Sub
' @(s)
'
' 機能 : spdShow_KeyPress事件の処理
'
' 引き数 : spdTemp 操作のspread
'
' 返り値 : 無し
'
' 機能説明 : ctrl+Vの時に、マウスボインタはspreadに入る
'
' 備考 : 作成者:××× 修正者:××× 05/03/29
'
' 作成時:04/10/28
Public Sub psSetCopyActionKey(ByVal spdTemp As FarPoint.Win.Spread.FpSpread, ByVal e As System.Windows.Forms.KeyEventArgs, Optional ByVal intPasteFlag As Integer = 0)
Try
Dim input1 As New FarPoint.Win.Spread.InputMap
Dim i As Integer
Dim intActiveCol As Integer
Dim intActiveRow As Integer
intActiveCol = spdTemp.ActiveSheet.ActiveColumnIndex
intActiveRow = spdTemp.ActiveSheet.ActiveRowIndex
input1 = spdTemp.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
input1.Put(New FarPoint.Win.Spread.Keystroke(Keys.C, Keys.Control), FarPoint.Win.Spread.SpreadActions.None)
If e.Modifiers = Keys.Control And e.KeyCode = Keys.C Then
Clipboard.SetDataObject(spdTemp.ActiveSheet.ActiveCell.Text.ToString, True)
End If
'セル、列、行はロック場合、貼付しない
If spdTemp.ActiveSheet.ActiveColumn.Locked = True Or spdTemp.ActiveSheet.ActiveCell.Locked = True Or spdTemp.ActiveSheet.ActiveRow.Locked = True Then
Exit Sub
End If
If e.Modifiers = Keys.Control And e.KeyCode = Keys.V Then
If intPasteFlag = 1 Then
If (intActiveCol = 6 Or intActiveCol = 7 Or intActiveCol = 8 Or intActiveCol = 9 Or intActiveCol = 10) And _
spdTemp.ActiveSheet.Rows(intActiveRow).Locked = False Then
Dim strCopy() As String
Dim iData As IDataObject
iData = Clipboard.GetDataObject()
spdTemp.EditMode = True
If (iData.GetDataPresent(DataFormats.Text)) Then
strCopy = Split(CStr(iData.GetData(DataFormats.Text)), " ")
If strCopy Is Nothing Then
Exit Sub
End If
For i = 3 To UBound(strCopy) Step -1
ReDim Preserve strCopy(UBound(strCopy) + 1)
strCopy(UBound(strCopy)) = ""
Next
'select case intActiveCol then
For i = intActiveCol To intActiveCol + 5
If i > 12 Then
Exit Sub
End If
Select Case i
Case 6
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 7)
Case 7
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 17)
Case 8
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 7)
Case 9
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 15)
Case 10
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 15)
Case 11
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 2)
Case 12
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 7)
End Select
Next
Else
Exit Sub
End If
Else
spdTemp.EditMode = True
Dim iData As IDataObject
iData = Clipboard.GetDataObject()
spdTemp.EditMode = True
If (iData.GetDataPresent(DataFormats.Text)) Then
spdTemp.ActiveSheet.ActiveCell.Text = CStr(iData.GetData(DataFormats.Text))
Else
Exit Sub
End If
End If
'*********************** ××× 05/03/29 開始************************
ElseIf intPasteFlag = 2 Then
If (intActiveCol = 2 Or intActiveCol = 3 Or intActiveCol = 4 Or _
intActiveCol = 5 Or intActiveCol = 6) And _
spdTemp.ActiveSheet.Rows(intActiveRow).Locked = False Then
Dim strCopy() As String
Dim iData As IDataObject
iData = Clipboard.GetDataObject()
spdTemp.EditMode = True
If (iData.GetDataPresent(DataFormats.Text)) Then
strCopy = Split(CStr(iData.GetData(DataFormats.Text)), " ")
If strCopy Is Nothing Then
Exit Sub
End If
For i = 3 To UBound(strCopy) Step -1
ReDim Preserve strCopy(UBound(strCopy) + 1)
strCopy(UBound(strCopy)) = ""
Next
'select case intActiveCol then
For i = intActiveCol To intActiveCol + 5
If i > 8 Then
Exit Sub
End If
Select Case i
Case 2
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 7)
Case 3
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 17)
Case 4
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 7)
Case 5
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 15)
Case 6
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 15)
Case 7
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 2)
Case 8
spdTemp.ActiveSheet.Cells(intActiveRow, i).Text = Mid(strCopy(i - intActiveCol), 1, 7)
End Select
Next
Else
Exit Sub
End If
Else
spdTemp.EditMode = True
Dim iData As IDataObject
iData = Clipboard.GetDataObject()
spdTemp.EditMode = True
If (iData.GetDataPresent(DataFormats.Text)) Then
spdTemp.ActiveSheet.ActiveCell.Text = CStr(iData.GetData(DataFormats.Text))
Else
Exit Sub
End If
End If
'*********************** ××× 05/03/29 終わる**********************
Else
If spdTemp.EditMode = False Then
spdTemp.EditMode = True
Dim iData As IDataObject
iData = Clipboard.GetDataObject()
spdTemp.EditMode = True
If (iData.GetDataPresent(DataFormats.Text)) Then
spdTemp.ActiveSheet.ActiveCell.Text = CStr(iData.GetData(DataFormats.Text))
Else
Exit Sub
End If
End If
End If
End If
Catch ex As Exception
End Try
End Sub
' @(s)
'
' 機能 : spreadの該当列ヘッドでダブルクリックして、該当列の幅は文字の幅と同じになった。
'
' 引き数 : spdTemp 操作のspread
'
' 返り値 : 無し
'
' 機能説明 : spreadの該当列ヘッドでダブルクリックして、該当列の幅は文字の幅と同じになった。
'
' 備考 : 作成者:×××
'
' 作成時:04/10/28
Public Sub psSetSpreadColWidth(ByVal spdTemp As FarPoint.Win.Spread.FpSpread, ByVal e As FarPoint.Win.Spread.CellClickEventArgs)
spdTemp.ActiveSheet.Columns(e.Column).Width = spdTemp.ActiveSheet.GetPreferredColumnWidth(e.Column)
End Sub
' @(s)
'
' 機能 : Clipboardのdata処理
'
' 引き数 : spdshow 操作のspread
'
' 返り値 : 無し
'
' 機能説明 : Clipboardのdata処理
'
' 備考 : 作成者:×××
'
' 作成時:04/12/24
Public Sub psSetCopyData(ByVal spdshow As FarPoint.Win.Spread.FpSpread, ByVal e As System.Windows.Forms.KeyEventArgs)
Dim strCopyData As String
Dim strLast As String
Dim intData As Integer
Try
strCopyData = Clipboard.GetDataObject.GetData(DataFormats.Text)
If e.KeyCode = 9 Then
Exit Sub
End If
If strCopyData <> "" Then
intData = strCopyData.Length
strLast = strCopyData.Substring(intData - 1, 1)
If Asc(strLast) = 10 Then
If intData > 1 Then
Clipboard.SetDataObject(strCopyData.Substring(0, intData - 2))
Else
Clipboard.SetDataObject(strCopyData.Substring(0, intData - 1))
End If
End If
End If
Catch ex As Exception
End Try
End Sub
' @(s)
'
' 機能 : Spreadのマウス処理
'
' 引き数 : spdshow 操作のspread
'
' 返り値 : 無し
'
' 機能説明 : Spreadのマウス処理
'
' 備考 : 作成者:×××
'
' 作成時:04/12/25
Public Sub pfSpreadColWidth(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Try
Dim intCol As Integer
Dim intFrozenCol As Integer
If e.Clicks = 2 And sender.Cursor Is Cursors.VSplit Then
intFrozenCol = sender.ActiveSheet.FrozenColumnCount
sender.ActiveSheet.FrozenColumnCount = 0
intCol = sender.GetCellFromPixel(0, 0, e.X - 3, e.Y + 30).Column
sender.ActiveSheet.SetColumnWidth(intCol, sender.ActiveSheet.GetPreferredColumnWidth(intCol))
sender.ActiveSheet.FrozenColumnCount = intFrozenCol
End If
Catch ex As Exception
Exit Sub
End Try
End Sub
' @(s)
'
' 機能 : F2事件の処理
'
' 引き数 : spdTemp 操作のspread
'
' 返り値 : 無し
'
' 機能説明 :
'
' 備考 : 作成者:×××
'
' 作成時:04/12/27
Public Sub psSetF2ActionKey(ByVal spdTemp As FarPoint.Win.Spread.FpSpread)
Try
Dim Input1 As FarPoint.Win.Spread.InputMap
Input1 = spdTemp.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
'/***************F3功能キーを削除します*****************/
Input1.Put(New FarPoint.Win.Spread.Keystroke(Keys.F3, Keys.None), FarPoint.Win.Spread.SpreadActions.None)
'/***************F2功能キーを追加します*****************/
Input1.Put(New FarPoint.Win.Spread.Keystroke(Keys.F2, Keys.None), FarPoint.Win.Spread.SpreadActions.StartEditing)
'/******************************FORM_LOAD中に、実行する*********************/
Catch ex As Exception
End Try
End Sub
' @(s)
'
' 機能 : Spreadのマウス処理
'
' 引き数 : spdshow 操作のspread
'
' 返り値 : 無し
'
' 機能説明 : Spreadのマウス処理
'
' 備考 : 作成者:×××
'
' 作成時:05/06/09
Public Sub pfSpreadColumnWidth(ByVal tempspd As FarPoint.Win.Spread.FpSpread)
Try
Dim intCol As Integer
For intCol = 0 To tempspd.ActiveSheet.ColumnCount - 1
tempspd.ActiveSheet.Columns(intCol).Width = tempspd.ActiveSheet.GetPreferredColumnWidth(intCol)
Next
Catch ex As Exception
End Try
End Sub
End Module