掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSFlexGridで複数セルの選択をするには? (ID:84928)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になります。よろしくお願い致します。 MSFlexGridとテキストボックスを組み合わせて、以下の様に設定しました。 テキストボックスは、日本語入力を完全とするため、 セルを離れる一瞬を除いて、常時表示しています。 (入力時以外は、表示しないとすると、日本語入力時に 変換前のひらがなが見えないなどの不具合があります。ので) そうした場合に 複数セルを選択することが、フォーカスがテキストボックスにあるために 以下のように難しくなってしまいます。 1)マウスで複数セルを選択する場合 セルの先頭にテキストボックスがあると、選択できない。 (テキストボックスが無いところだと、出来ますが) 2)方向キー+Shiftキーで、セルの複数選択が出来ない 1)の場合、テキストボックスが選択したいセルの先頭にある場合でも セルを選択出来ないでしょうか。 また、2)の場合のように、キー操作でも選択できないでしょうか。 よろしくお願い致します。 Option Explicit Private Sub Form_Load() Me.Show With MSFlexGrid1 .Row = 1 .Col = 1 .RowSel = 1 .ColSel = 1 End With MSFlexGrid1_EnterCell End Sub Private Sub MSFlexGrid1_EnterCell() With Text_Edit .Text = "" .Visible = False .Top = MSFlexGrid1.Top + MSFlexGrid1.CellTop .Left = MSFlexGrid1.Left + MSFlexGrid1.CellLeft .Height = MSFlexGrid1.CellHeight .Width = MSFlexGrid1.CellWidth .Text = MSFlexGrid1.Text .Visible = True .SetFocus End With End Sub Private Sub MSFlexGrid1_LeaveCell() MSFlexGrid1.Text = Text_Edit.Text End Sub Private Sub MSFlexGrid1_Scroll() Text_Edit.Visible = False End Sub Private Sub Text_Edit_KeyDown(KeyCode As Integer, Shift As Integer) Dim dRow As Long Dim dCol As Long If KeyCode = vbKeyReturn Or KeyCode = vbKeyDown Then dRow = MSFlexGrid1.Row + 1 If dRow < MSFlexGrid1.Rows Then MSFlexGrid1.Row = dRow End If ElseIf KeyCode = vbKeyUp Then dRow = MSFlexGrid1.Row - 1 If dRow > 0 Then MSFlexGrid1.Row = dRow End If ElseIf KeyCode = vbKeyRight Then dCol = MSFlexGrid1.Col + 1 If dCol < MSFlexGrid1.Cols Then MSFlexGrid1.Col = dCol End If ElseIf KeyCode = vbKeyLeft Then dCol = MSFlexGrid1.Col - 1 If dCol > 0 Then MSFlexGrid1.Col = dCol End If End If End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.