Microsoft Office Visio 2007 運用技巧 (2)—客製化 Visio 的智慧圖形

發佈日期: 2008 年 7 月 18 日

**作者:**王仲麒
**出處:**Run!PC 第 174 期 / 7 月號

雖然 Visio 2007 提供了成千上萬個現成的主圖形(Master Shape),足以應付各行各業每一個使用者的需求,但是,若要滿足特定需求,甚至創造出一致性的標準化圖形,則客製化圖形即是不可或缺的繪圖作業了。

本頁內容

Visio 物件
認識 ShapeSheet(圖形清單)
以圖形清單控制圖形
ShapeSheet(圖形清單)讓圖形更聰明
建立樣板(Stencils)
建立與共用範本(Templates)
巨集的錄製功能

在 Visio 2007 的世界中,所包含的內容為圖形(shapes)、樣板(stencils)及範本(templates)。而最基本的繪圖內容單位為「主圖形」(Master Shape),它們是繪圖頁面上可任君組合的圖件,這些主圖形代表著真實世界中具體的實體物(電腦設備、桌椅、電器…)或抽象的意念(流程決策、程序、概念、邏輯、關係…),利用這些圖形將可拼湊出所要呈現的思維與作品。Visio 2007 內建的主圖形眾多繁複,亦早已分門別類地安排在各個樣板 (stencils)檔案裡,藉由不同樣板檔案的開啟,便可以隨手取得所要的圖形。

此外,由於不同的目的將運用到不同的圖形與圖騰,更需要開啟特定的樣板檔案,甚至影響繪圖環境的規範,諸如:紙張規格、頁面屬性、度量比例、格線設定、色彩樣式與主題佈景的套用、背景圖案的選擇、…這些皆足以限定各種不同目的與需求的繪圖作業環境及工具。因此,包含上述規範的各種範本檔案(templates)便一一營運而生。

綜觀,透過 Visio 2007 你可以客製化的工作有:

  • 建立新的或編輯既有主圖形(Master Shape)。

  • 建立新的或編輯既有的樣板檔案(Stencil Files)。

  • 建立繪圖範本檔案(Visio Templates)。

  • 你也可以透過範本檔案的建立,讓你的繪圖工作標準化。

  • 建立自訂化的控制項、功能表與工具列。

Visio 物件

不論是 Visio 2007 的預設圖形,還是自行建立的自訂圖形、自行繪製的幾何圖案等,也都可以稱為 Visio 物件(Object)。即使「物件」這個名詞的定義與解釋都非常的廣泛,可以分成幾大類別,詳如表 1。

在 Visio 2007 的環境中,提供有基本的繪圖工具(Drawing Tools)、樣式(Styles)、圖形清單(圖形清單)、佈景主題(Themes)等等工具與功能特性,可以協助你迅速進行客製化的操作與設計。譬如:一旦繪製了幾何圖案,或者,選取了各種圖形,便可以進行格式的操作。以一個簡單的矩形圖形為例,便可以設定填滿效果、線條粗細、線條的圓角設定、線條樣式(虛線或實線的格式)、填滿效果(漸層設定)、陰影設定等等格式效果,這些都是客製化物件外觀最基本的格式設定。

表 1 Visio 物件類別

物件名稱

意義

繪圖頁面物件

也就是你繪製圖形的哪一塊面積,但這並不意味你只能在這一塊面積內繪製圖形,在此繪圖頁面的外圍是一塊稱之為「剪貼板」的青藍色面積,你也可以在此區域內繪製圖形,而且,儲存繪圖檔案時,不論是繪圖頁面上的圖形還是剪貼板上的圖形都會一併儲存,只是,只有繪製在繪圖頁面上的圖形才會列印輸出。因此,通常都將下次可能會用到的圖案或物件,全部放在剪貼板上,爾後只要拖拉到繪圖頁面上應用即可,而免去重新繪製或捉圖的不便。此外,一個 Visio 2007 繪圖檔案 ( .vsd) 最多可以含括 200 張繪圖頁面。

群組物件

所謂的群組即為圖形或幾何圖案的集合,在操作上一個群組就視為一個物件看待。

圖形物件

圖形物件說穿了就是一些幾何線條與圖案的集合,並視為單一物件,而且,可以利用 Visio 2007 的圖形清單來控制圖形的變化。

樣式物件

樣式物件即展現出繪圖的格式效果,你可以透過〔格式〕/〔定義樣式〕功能表指令操作建立所要的樣式格式,並直接套用在圖形與文字上。

輔助物件

輔助物件是由〔輔助線〕與〔輔助控點〕所組成的,可以協助你在圖形中對圖形設定最精確的位置。

外來物件

所謂的前景物件,指的是利用〔插入〕/〔圖片〕、〔插入〕/〔物件〕或者〔編輯〕/〔貼上〕等指令操作所添加至繪圖頁面上的外來圖形檔案。Visio 2007 可以識別的外來物件有:點陣圖 (bmp)、Metafile、OLE 連結物件、OLE 內嵌物件與控制。

文件物件

文件物件定義著預覽的品質以及輸出的格式,通常指的就是〔檔案〕/〔屬性〕功能表指令裡的設定。

此外,你也可以利用佈景主題的設計,分別針對色彩與效果的配置及樣式,進行定義與自訂化,以設計出標準的制式外觀,爾後在繪製其他圖形或幾何圖案時便可以直接套用,而免去再度進行格式設定的繁複操作。(圖 1)

透過佈景主題可以設定圖形的色彩配置與效果樣式。

圖1:透過佈景主題可以設定圖形的色彩配置與效果樣式。

認識 ShapeSheet(圖形清單)

在 Visio 2007 裡,每一個物件都有其自己的 ShapeSheet,每一個圖形、每一個物件、每一個繪圖時的導引與輔助工具,都有其相對應的 ShapeSheet(圖形清單),控制著該物件的外觀、面貌與行為。即使是一張空白的繪圖頁,其頁面本身也擁有一張對應的 ShapeSheet。因此,只要瞭解 ShapeSheet 的格式與內容,即便不須透過程式設計,也能夠完完整整地控制每一個 Visio 物件的長相、動作行為與反應。

在外觀上,ShapeSheet 是一個非常類似 Excel 工作表的表格,在結構上,它是由一個個﹝區段﹞所組成的,而基於各物件組成結構的不同,每一個物件的 ShapeSheet 其內含的﹝區段﹞類別與數量多寡也就各有不同。不過,基本上,一個﹝區段﹞是由其區段標題(Section Title Bar)及一個以上的列(Rows)、欄(Columns)與儲存格(Cells)所組成的。在 Visio 2007 中總計有數十個區段,可參考表 2。

表 2 Visio 2007 中的區段

區段名稱

 

1-D endpoints

1-D 結束點

Shape transform

圖形轉換

User-defined cells

使用者定義的儲存格

Shape Data

圖形資料(自訂屬性)

Hyperlinks

超連結

Connection points

連接點

Actions

動作

Controls

控制項

Geometry

幾何

Scratch

可用

Protection

保護

Miscellaneous

其他

Group Properties

群組屬性 (Visio 2007 新增功能)

Line format

線條格式

Fill format

填滿格式

Text fields

文字欄位

Character

字元

Paragraph

段落

Tabs

定位點

Annotation

註釋標記資訊

Text block format

文字區塊格式

Text transform

文字轉換

Layer membership

圖層成員資格

Events

事件

Foreign image info

外來影像資訊

Image properties

影像屬性

Glue info

粘附資訊

Alignment

對齊

Shape layout

圖形版面佈置

Smart tags

智慧標籤

Layers

圖層

Page layout

版面佈置

Page properties

頁面屬性

Ruler & grid

尺規及格線

以圖形清單控制圖形

除了可以在 ShapeSheet 裡輸入並設定公式、函數來控制圖形的外觀、面貌與行為外,也可以透過圖形屬性的連結參照,讓圖形之間相互影響與操控。譬如:你可以設定一個圖形的寬度正影響著另一個圖形的高度。最簡單的方式便是在圖形的 ShapeSheet 裡,設定﹝Shape Transform﹞區段內的﹝Width﹞與﹝Height﹞之欄位值。以橢圓形的寬度等於三角形的高度而言,可以在三角形其﹝Shape Transform﹞區段內的﹝Height﹞欄位中鍵入公式:= Ellipse!Width。類似 Excel 試算表的連結公式,讓兩個圖形的屬性可以彼此參照。(圖 2)

在 ShapeSheet 裡設定參照公式,讓圖形的屬性影響另一個圖形。

圖2:在 ShapeSheet 裡設定參照公式,讓圖形的屬性影響另一個圖形。

身為一般的 Visio 2007 使用者,你可能不會使用也不會看到 ShapeSheet,可是,如果你是一個 Visio 2007 的進階人員,可就不能不認識、不熟悉 ShapeSheet 喔!

ShapeSheet(圖形清單)讓圖形更聰明

在實務的應用上,不論是自行繪製的圖形或是匯入的圖片,皆可以賦予具備內涵與意義的資料欄位,儲存其代表的內容與資訊,甚至,再藉由其 ShapeSheet 的定義與公式建立,即可輕而易舉的製作出標準化的智慧主圖形(Master Shape)。

譬如:我們想規劃一個 LCD 液晶螢幕商品的智慧圖形,而實體的尺寸規格與單價共分成三種類型,分別為 17 吋、19 吋與 22 吋,價格則分別為 4800 元、6280 元以及 9210 元。如此,你便可以為這個原本沒有任何資訊意義的 LCD 圖形,建立﹝尺寸﹞、﹝規格﹞、與﹝售價﹞等三項資料欄位。而這些 LCD 商品的相關資料內容如表 3 所列。

表 3 範例 ─ LCD 商品的相關資料內容

尺寸

規格

售價

圖高

圖寬

17

實用 17 吋液晶寬螢幕

NT$4,800

28mm

32mm

19

標準 19 吋液晶寬螢幕

NT$6,280

32mm

37mm

22

高階 22 吋液晶寬螢幕

NT$9,210

36 mm

42mm

隨即便可以透過資料圖形的定義操作,設定 LCD 圖案的屬性資料,其中,﹝尺寸﹞、﹝規格﹞、與﹝售價﹞為圖形資料,且﹝尺寸﹞的資料型態為固定清單,區分為 17 吋、19 吋、22 吋等三種尺寸;﹝規格﹞的資料型態為文字型態;﹝售價﹞的資料型態則為貨幣型態。至於圖形的實際高度與寬度則定義在 ShapeSheet 裡。(圖 3)

利用定義圖形資料的操作,為原本沒有任何意義的圖形添加資料欄位。

圖3:利用定義圖形資料的操作,為原本沒有任何意義的圖形添加資料欄位。

接著,切換到該 LCD 圖形的 ShapeSheet 視窗後,請務必養成一個好習慣,那就是立即將﹝ShapeData﹞區段裡以﹝Prop.﹞為首並緊跟著﹝Row_編號﹞的欄位名稱,逐一改成較有意義的自訂欄位名稱。譬如:將代表﹝尺寸﹞欄位的﹝Prop.Row_1﹞改名為﹝Prop.size﹞;將代表﹝規格﹞欄位的﹝Prop.Row_2﹞改名為﹝Prop.Spec﹞;將代表﹝價格﹞欄位的﹝Prop.Row_3﹞改名為﹝Prop.Price﹞。熟悉 VBA 程式撰寫的朋友一定對這般的命名語法相當熟識,爾後在 ShapeSheet 中或程式撰寫裡,亦可以引用、參照這些欄位名稱。(圖 4)

預設的 ShapeData 欄位名稱是資料列流水編號,較難閱讀與理解,適時地改成具有意義的名稱是個良好的習慣。

圖4:預設的 ShapeData 欄位名稱是資料列流水編號,較難閱讀與理解,適時地改成具有意義的名稱是個良好的習慣。

由於不同 LCD 尺寸其規格說明有異、售價也並不相同,只要將這些資訊定義在 ShapeSheet 的相關區段裡,對於圖形本身的外觀大小即可根據商品不同尺寸的選擇而自動調整圖形的寬與高。譬如:不同的 LCD 尺寸其圖形大小的數據,可以設定在﹝Shape Transform﹞區段的﹝Width﹞與﹝Height﹞內;而 LCD 的規格說明與售價,則可以分別設定在﹝Shape Data﹞區段的﹝Prop.spec﹞與﹝Prop.price﹞內,只要透過IF函數的撰寫,即可判斷運算出不同的尺寸有著不同的產品規格與售價,繪圖頁面上的圖高、圖寬也不同。

  • 圖 5﹝Shape Transform﹞區段裡的﹝Width﹞(圖寬)公式為:「=IF(Prop.size=17,32mm,IF(Prop.size=19,37 mm,42 mm))」。

  • 圖 5﹝Shape Transform﹞區段裡的﹝Height﹞(圖高)公式為:「=IF(Prop.size=17,28mm,IF(Prop.size=19,32 mm,36 mm))」。

  • 圖 5﹝Shape Data﹞區段裡的﹝Prop.spec﹞(LCD 的規格說明)公式為:「=IF(Prop.size=17,"實用 17 吋",IF(Prop.size=19,"標準 19 吋","高階22吋"))&"液晶寬螢幕"」。

  • 圖 5 ﹝ Shape Data ﹞ 區段裡的﹝ Prop.price ﹞ ( LCD 的售價) 公式為:「= IF ( Prop.size = 1 7 , 4 8 0 0 , IF ( Prop.size=19,6280,9210))」

透過 IF 函數撰寫運算式。

圖5:透過 IF 函數撰寫運算式。

當然,也別忘了,在圖形上適度的添加說明文字可以添增圖形的可讀性與直覺的視覺效果。此時你會發覺,僅僅是幾個簡單的 IF 函數,便可以讓平凡的圖案變成具有義意且更具彈性的圖形。最後,只要在 LCD 圖形的 ShapeSheet 中,將﹝Shape Data﹞區段裡的﹝Prop.Size﹞欄位之﹝Ask﹞儲存格值設定為﹝True﹞,則該圖形在置入樣板後便具有自動化特性,即爾後只要從樣板裡拖曳這個智慧主圖形至頁面上,便可以立即開啟顯示著﹝尺寸﹞下拉式欄位選單的﹝圖形資料﹞對話方塊,只要選擇不同尺寸的選項,便可以顯示出不同規格與價格且圖案大小也不同的液晶螢幕圖案。(圖 6)

拖放至繪圖頁面上,立即開啟﹝圖形資料﹞對話方框,顯示﹝尺寸﹞的選擇。只要在液晶螢幕圖形上選擇不同尺寸時,在外觀上,圖形的大小便會自動調整,文字方塊裡也會顯示相對尺寸的商品規格及單價。

圖6:拖放至繪圖頁面上,立即開啟﹝圖形資料﹞對話方框,顯示﹝尺寸﹞的選擇。只要在液晶螢幕圖形上選擇不同尺寸時,在外觀上,圖形的大小便會自動調整,文字方塊裡也會顯示相對尺寸的商品規格及單價。

建立樣板(Stencils)

在建立了客製化的自訂圖形,並透過 ShapeSheet 的定義與公式、參數的設定後,一個個的智慧圖形便可以在爾後的繪圖作業中輕鬆拖曳選用,甚至分享給其他人使用。雖然透過剪貼簿剪剪貼貼的複製與貼上,可以達到這般的需求,但是,最理想的解決方案還是建立標準化的樣板檔案才是唯一正途。(圖 7)

將客製化的圖形分門別類地儲存在自行建立的樣板裡,規劃客製化又具備一致性的樣板檔案。

圖7:將客製化的圖形分門別類地儲存在自行建立的樣板裡,規劃客製化又具備一致性的樣板檔案。

樣板的檔案格式為 .vss,裡面的圖形則統稱為主圖形(Master),其主要來源可以是插入的指定圖形檔案,或是存放在其他暨有樣板內的圖形,抑或是使用者自行繪製的新圖形。當然,經由前述的 ShapeSheet 所客製化的圖形或是具備連接至外部資料庫的圖形,也都是樣板裡主圖形的標準常客。可參考圖 8 客制化的人員樣板裡包含了單位或小組的人員相片智慧主圖形,即可視覺化地繪製排班表,並顯示該人員的基本資料。而客制化的防火器材樣板檔案,在防火器材配置的空間規劃繪圖作業中,亦可隨時控管器材設備的位置與財產報告。

集合了相關的智慧圖形,便可以形成標準化的制式樣板。

圖8:集合了相關的智慧圖形,便可以形成標準化的制式樣板。

建立與共用範本(Templates)

建立了一個個的樣板檔案後,使用上當然並非只能一個個地開啟,而是可以將客製化的樣板檔案或是 Visio 2007 暨有的預設樣板,儲存成一個客制化的範本檔案,其檔案格式為 .vst。在標準的繪圖作業程序上,便可以開啟相同規模的樣板與版面配置、佈景主題,進行一致化的繪圖作業。至於範本的共用與分享,則有兩個不同途徑可以設定與規劃:

  1. 透過共用的路徑來分享範本檔案

    這是最簡單的方式,也就是將製作完成的範本檔案以及樣板檔案,複製在一個已知的磁碟路徑位置。你可以利用 Visio 的﹝工具﹞/﹝選項﹞功能表指令選項,在﹝進階﹞索引標籤對話方塊左下方的﹝檔案路徑﹞按鈕中,即含有範本與樣板的指定路徑之設定對話操作。大多數的 Visio 版本都適用這種方式來分享客制化的 Visio 範本與樣板。不過,這般的分享雖然簡單方便,但是僅適合規模較小的內容與部署,或是使用較早期版本的 Visio。因為,這種方式的路徑描述冗長,設定上容易出錯,範本的位置也都固定在起始畫面的﹝其他﹞範本類別中,並無法現身於自訂的客製化範本類別裡。此外,位於使用者端電腦內的客製化範本若有問題與損壞也將難以維護,更無法控制載入的 Visio 樣板與範本是哪一個語言版本。若要解決這些缺點,就只得採用第二種方式囉!

  2. 建置安裝專案來建立範本發佈安裝程式

    必須透過 Visual Studio .NET 以及 Visio 2003/2007 SDK。在 Visual Studio 中建立一個 Setup 專案,便可以選擇準備好的 Visio 樣板檔案、範本檔案,輕鬆建置一個安裝專案,產生一個標準的 MSI 檔案,再透過 Visio SDK 的安裝、設定,建立可發佈安裝的範本安裝程式。(圖 9)

    藉由 Visual Studio .NET 建立樣板與範本的安裝專案。

    圖9:藉由 Visual Studio .NET 建立樣板與範本的安裝專案。

爾後在啟動 Visio 2007 進行建立新繪圖檔案時,一旦開啟範本檔案,會立即開啟各個相關的樣板檔案,讓使用者開始進行標準化的繪圖工作。

巨集的錄製功能

先前的 Visio 版本雖然都可以進行巨集的編輯製作,不過,並沒有提供錄製巨集的功能,這對於不擅長撰寫 VBA 程式的使用者而言的確是頗為不便的,不過,現在的 Visio 2007 已經改善了!當然,你若熟悉 VB 或 VBA 相關的程式設計,也可以針對既有的巨集進行研究或編輯修改巨集程式。此外,透過控制項的建立與開發人員的操作環境(Visual Basic Editor),以撰寫程式的方式來控制圖形的運作,自是客製化目標的終極挑戰,也是 Visio 開發領域的必經之路。(圖 10)

添加下拉式選單控制項,選擇不同親等的項目即可立即繪製相關親等的關係圖表。

圖10:添加下拉式選單控制項,選擇不同親等的項目即可立即繪製相關親等的關係圖表。