掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Spread(Ver.3.0J)で複数行選択 (ID:102857)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
vb6、spread3.0Jを使っています。 shiftキーまたはctrlキーが押されている間だけ複数行選択ができて、shiftキーまたはctrlキーが押されなくなったとき単一選択になるようにしたいです。 起動時は単一選択です。 shiftキーやctrlキーを押しながらマウスでクリックすると、特にコードを書いてなくても問題なく複数行選択ができます。 やりたいこと(質問したいこと)は2つあります。 1.複数選択モードに変更したとき、行の先頭行を反転表示したい。 書いたコードは以下のとおりです。 spreadのkeydownイベントに書きました。 Dim blnShift As Boolean Dim blnCtrl As Boolean blnShift = (Shift And vbShiftMask) > 0 blnCtrl = (Shift And vbCtrlMask) > 0 If blnShift = True Or blnCtrl = True Then With vaSpread1 .AllowMultiBlocks = True .OperationMode = OperationModeMulti .ReDraw = False .SetFocus .Col = -1 .Row = 1 .Action = SS_ACTION_ACTIVE_CELL .ReDraw = True End With End If 先頭行は反転表示されません。未選択状態となります。 2.shiftと上下の矢印ボタンを押したとき複数行選択したい。 書いたコードは以下のとおりです。 spreadのkeyupイベントに書きました。 Dim blnShift As Boolean Dim blnCtrl As Boolean Dim lngIdx As Long Dim lngCol As Long Dim lngRow As Long Dim lngRow2 As Long Dim lngCount As Long blnShift = (Shift And vbShiftMask) > 0 blnCtrl = (Shift And vbCtrlMask) > 0 If blnShift = True Or blnCtrl = True Then If intKeyCode = vbKeyDown Or intKeyCode = vbKeyUp Then lngCol = -1 lngRow = -1 With vaSpread1 .ReDraw = False lngCount = .SelModeSelCount For lngIdx = 0 To lngCount - 1 lngRow = .GetMultiSelItem(lngIdx) Exit For Next lngRow2 = .ActiveRow .Col = lngCol .Col2 = .Col .Row = lngRow .Row2 = lngRow2 .Action = SS_ACTION_SELECT_BLOCK .Refresh .ReDraw = True End With End If ElseIf blnShift = False And blnCtrl = False Then With vaSpread1 .OperationMode = OperationModeSingle .AllowMultiBlocks = False .Col = -1: .Row = 1 .Action = SS_ACTION_ACTIVE_CELL End With End If 選択行(マウスで選択)を検索して、その行からアクティブ行まで複数行選択したいです。 このコードでは、例えば1行目クリック後shift+下矢印ボタン押下で、1行目2行目を選択したいんですが、先頭行(1行目)だけが反転表示されます。 どなたか教えてもらえないですか? よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.