0

リボン UI を使用してシートを保護し、すべてのセルがロックされているか、選択が有効になっていない場合、四角形のカーソルは消えます。

しかし、ユーザーと対話するセルがいくつかあるため、すべてのセルをロックするつもりはありません。これで、四角形はロックされていないセルにのみ表示されます。

そして、これらのロックされたセルを VBA で選択できるようにする必要があるため、次のコードが追加されました。

Worksheets("sheet1").Protect Password:="******", _
    UserInterfaceOnly:=True

そして今、VBA はロックされているかロックされていないかに関係なく、すべてのセルを選択できるため、四角形のカーソルがどこにでも表示されます。

ここで、その長方形自体を非表示にします。出来ますか?

4

5 に答える 5

1

次のコードを追加します。

Worksheets("sheet1").EnableSelection = xlNoSelection
于 2012-07-25T04:25:23.290 に答える
0

完全に消すことはできませんが、うまく隠すことはできます。コメントから、現在のセルを強調表示していることに注意してください。したがって、その強調表示に追加されたこのコードは、カーソルを非表示にするのに役立ちます。

' Code generated by record macro, and not tidied up
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    .Weight = xlThick
End With
With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    .Weight = xlThick
End With
With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    .Weight = xlThick
End With
With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    .Weight = xlThick
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

これにより境界線が黒くなり、セルが選択されると白くなります (非常に細い黒の輪郭)。

別の方法は、すべてのセルを灰色の太いアウトラインに変更することです。これにより、ボックスが選択されたときに同じ色のアウトラインが表示されます。プログラムによるコードの変更は、colorindex 行を削除し、追加することです。

    .ThemeColor = 1

その場所で、TintAndShade 行を次のように変更します。

    .TintAndShade = -0.5

使用する方法に関係なく、現在のセルに細い黒い線が表示されます。

于 2012-07-25T14:43:05.340 に答える
0

長方形を実際に非表示にする方法はありません。

于 2017-06-22T20:16:13.590 に答える
-2

誰がこれを書いたのかわからないので、クレジットを与えることができますが、うまくいくようです。

Private Declare Function ShowCursor Lib "USER32" _ 
(ByVal fShow As Integer) As Integer 

Sub hide() 
    While ShowCursor(False) >= 0 
    Wend 
End Sub 

Sub show() 
    While ShowCursor(True) < 0 
    Wend 
End Sub 
于 2015-09-08T10:17:05.763 に答える