ワークシート上にメッセージを表示したいことがよくあります。
単に、こうすればいいのですが
ActiveSheet.Range("B2").Value = "こんにちは"
もう少し上等な機能をもった関数を作ってみました。
IndicateMessage()
'----- IndicateMessage を表示するセル名
Private Const messageCellName = "MessageCell"
'----- 文字のサイズと色
Private Const messageFontSize = 10
Private Const messageFontColorIndex = 3
'----- ArrowLine の名前の接頭語
Private Const arrowPrefix = "ArrowLine"
'----- 指示メッセージの表示
Public Sub IndicateMessage( _
msg, Optional spaceCount = 0, Optional arrowNum = -1 _
)
On Error Resume Next
clearArrowLines
With ActiveSheet.Range(messageCellName)
.Font.Size = messageFontSize
.Font.ColorIndex = messageFontColorIndex
.Value = Space(spaceCount) & msg
End With
If arrowNum >= 0 Then _
ActiveSheet.Shapes( _
arrowPrefix & "-" & Format(arrowNum, "00") _
).Visible = True
End Sub
'----- すべての ArrowLine を消去する
Private Sub clearArrowLines()
Dim arrowSp, a
For Each arrowSp In ActiveSheet.Shapes
a = Split(arrowSp.Name, "-")
If a(0) = arrowPrefix Then arrowSp.Visible = False
Next
End Sub
こうやって使います。
IndicateMessageDemo()
Sub IndicateMessageDemo()
IndicateMessage "矢印もインデントもなし"
IndicateMessage "インデント20", 20
IndicateMessage "メッセージ表示のテスト", 10, 0
End Sub