Excel圖案中的線條設定為箭頭,可作為指示圖形或數學中的向量。本文介紹VBA的AddConnector、ShapeRange.Line、With…End、ActiveSheet.Cells.Value等方法,設計程式依照Excel所輸入的儲存格位址畫出線條箭頭。
一、Excel VBA畫圖
「ActiveSheet.Shapes.AddConnector(msoConnectorStraight, _」是新增連接器圖形的程式碼。由於連接器和先前文章畫直線的「AddLine」相比型態較多樣,所以多了表示屬於直線的「msoConnectorStraight」參數,其他還諸如弧線的型態。
關於Excel VBA畫圖畫線,可參考贊贊小屋相關文章。
第一段和第二段都是畫一條直線連接器,第一段是從A7到F2,第二段是從G7到L2,兩者都是將起點終點寫在程式裡了,因為程式碼較長,第二段是用空格加下橫線(「 _」)的方式將長程式碼分行。注意到VBA是一行程式碼作為執行對象,所以不能像Word文章那樣隨意斷行,一定要用「 _」的方式。
寫程式和寫文章一樣,有註解會比較容易理解,VBA加上註解的方式很簡單,和Excel儲存格函數公式類似,語句前面加一撇就變成單純文字,顏色同時會變成是如同截圖所示的綠色。

二、VBA畫平行線
執行巨集後,Excel工作表果然畫出兩條平行的直線,上個步驟的程式碼最後有個「Select」,所以會選取第二個線條的狀態。

三、Excel圖形格式
不管是直線或者連接器,都可以在選取的狀態下滑鼠右鍵進入「設定圖形格式」視窗。在此將「寬度」設定為「3pt」,「結束箭頭類型」為「箭頭」,這樣子是在Excel手工操作得到了一個數學上的向量。

四、VBA圖形格式
將上個步驟的Excel操作編寫為VBA程式碼:
With Selection.ShapeRange.Line:開始針對直線圖形格式統一設置。
.EndArrowheadStyle = msoArrowheadTriangle:結束箭頭類型為箭頭。
.Weight = 3:寬度設定為3pt。
End With:結束圖形格式設置,類似於在Excelxcel將屬性視窗關閉。

五、數學向量直線
執行巨集,以VBA程式繪製有箭頭的粗連接直線,便是數學向量圖形。

六、VBA Cells位置取得
為方便起見,不想要把要繪製的範圍寫定在VBA裡,因此設定兩個變數作為特定的Excel儲存格,例如把目前工作表第1列第15欄儲存格值設定為變數「VecBin」,Cells(1,15)是Excel工作表上的O1。Celld是先指定列再指定欄,Excel是先指定欄再指定列。
既然設定好了變數,「AddConnector」這裡便是變數作為儲存格範圍的值,Range(VecBin),稍後會在Excel儲存格O1輸入L2,這樣Range(VecBin)便是Range(“L2”)。
不希望程式完畢是選取圖形的狀態,所以最後一行「ActiveCell.Select」,作用為選取目前的儲存格,實質效果等同於取消選取圖形。

七、回傳位置畫線
Excel儲存格O1及O2分別輸入「L2」及「K6」,執行巨集「Connector3」,在Excel坐標平面上畫出兩個向量相加。

Excel VBA取得儲存格的值
本文範例是依照Excel儲存格值執行VBA程式繪圖,過程中可以學到了兩個非常基本實用的VBA技巧。第一個是用空格加下橫線(「 _」)將長程式語句分行,第二個則是以Excel所輸入儲存格值作為VBA執行程式設定值,等於達成了Excel和VBA之間的資料交流,通常會比較習慣在Excel輸入資料,這個方式因此大大提升了VBA程式的靈活度。
完整學習:VBA自動化文章合輯。