最近看到一个网络图,似乎叫双代号时标网络图(如图,图来自 ccproject 官网)。
网上搜了搜有个叫 ccproject 的软件挺对口的,只不过软件太贵。我并不是真的要管理一个项目,只是看到这个图后想研究 Excel 能不能画。所以就有了这次尝试。
个人觉得最麻烦的应该是精准画箭头了,所以各种查资料写了下面一段 VBA 代码。效果是这样的:选中一些单元格来画箭头,起点是选中范围的左上角单元格的左上角,终点是选中范围的右下角单元格的左上角。这个其实也不是很有用,算是好玩吧。令人惊喜的是这样画的箭头是会随着单元格大小的调整而自动调整的。
Sub DrawArrow()
Dim str, Start, Finish As String
Dim MyPos As Integer
If TypeName(Selection) = "Range" Then
str = Selection.Address
MyPos = InStr(1, str, ":", 1)
If MyPos = 0 Then
End
Else
Start = Left(str, MyPos - 1)
Finish = Mid(str, MyPos + 1)
End If
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, _
Range(Start).Left, Range(Start).Top, Range(Finish).Left, Range(Finish).Top).Select
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadOpen
End If
End Sub
测试效果: