Я создаю небольшую надстройку для Excel, чтобы пометить выбранную строку и столбец прямоугольниками. Есть ли способ сделать их невыбираемыми? Должен ли я использовать что-то еще?
Часть кода, которая входит в ThisWorkbook надстройки:
Private ROW_SHAPE As Shape
Private COLUMN_SHAPE As Shape
Private Sub AddShapes(ByVal Sh As Object)
VisibleRangeHeight = ActiveWindow.ActivePane.VisibleRange.Height
VisibleRangeWidth = ActiveWindow.ActivePane.VisibleRange.Width
SelectedCellHeight = Selection.Height
SelectedCellWidth = Selection.Width
If SelectedCellHeight > VisibleRangeHeight Then
SelectedCellHeight = VisibleRangeHeight
End If
If SelectedCellWidth > VisibleRangeWidth Then
SelectedCellWidth = VisibleRangeWidth
End If
CellPosLeft = Selection.Left
CellPosTop = Selection.Top
Set ROW_SHAPE = Sh.Shapes.AddShape(msoShapeRectangle, 1, CellPosTop, _
VisibleRangeWidth + CellPosLeft, SelectedCellHeight)
With ROW_SHAPE
.Name = "row_shape"
.Line.ForeColor.RGB = RGB(255, 0, 0)
.Fill.Visible = msoFalse
With .Shadow
.Visible = True
.Blur = 4
.OffsetX = 1
.OffsetY = 1
.ForeColor.RGB = RGB(255, 0, 0)
End With
End With
Set COLUMN_SHAPE = Sh.Shapes.AddShape(msoShapeRectangle, CellPosLeft, 1, _
SelectedCellWidth, VisibleRangeHeight + CellPosTop)
With COLUMN_SHAPE
.Name = "column_shape"
.Line.ForeColor.RGB = RGB(255, 0, 0)
.Fill.Visible = msoFalse
With .Shadow
.Visible = True
.Blur = 4
.OffsetX = 1
.OffsetY = 1
.ForeColor.RGB = RGB(255, 0, 0)
End With
End With
End Sub