仿蘋果滑動開關的動態圖表

Excel圖表之道2018-05-14 04:59:14

學員朋友發給我這樣一張圖表,諮詢這個仿蘋果風格的滑動開關控件是否可以實現。



從例圖看,這個開關控件似乎是二選一的功能,相當於兩個單選按鈕控件。實際在蘋果IOS的界面中,這個開關通常是有 ON、OFF 兩個選項,相當於控件。


日常工作中,Excel 的常規窗體控件已經夠用。如果學有餘力還想擁有個性化,可以自己 DIY 這種開關,會給人一點新意的感覺,但需要一點點 vba 知識。建議學完《讓你的》課程中傳統窗體控件做法,希望更追求個性化的朋友,可以嘗試本帖的做法,否則還是先學習和運用該課程的傳統做法。


我們的做法是用形狀來繪製開關,給它們賦予宏代碼,根據用户點擊操作,記下開關狀態,同時改變開關的外觀。為求動畫的逼真,可以使用循環來移動開關按鈕的位置。下圖是實現的效果。



這個 DIY 模擬的開關控件,相當於一個複選框,它的選擇結果記錄在一個單元格,驅動動圖表變化。關於動態圖表的做法,我們已經在《讓你的圖表動起來》課程裏系統整理過,這裏不再介紹,本帖僅介紹如何 DIY 這個開關控件。


1、先用形狀繪製一個和圓圈,分別命名為 backshape 和 Button,準備一個單元格命名為 Switch,用户操作後的結果將記錄在這個單元格。


2、插入一個模塊,編寫如下的宏代碼。



宏代碼所執行的操作是:

如果狀態是開,那麼將狀態置為 FALSE 關,將橢圓矩形框設置為灰色填充,文字為 OFF,右對齊,向左循環微移圓圈位置;

如果狀態是關,那麼將狀態置為 TRUE 開,將橢圓拖延矩形框設置為綠色填充,文字為 ON,左對齊,向右循環微移圓圈位置;


這些代碼其實我也不會寫(不記得),是通過錄制宏代碼後修改得來的,關鍵是我們要有這個思路。其中 for 循環產生滑動開關的動畫效果。


3、給橢圓矩形框和圓圈都指定這個宏代碼。

現在,測試點擊開關,單元格 Switch 的值將在 TRUE 和FALSE 之間變化,這就相當於複選框控件了。


4、根據數據源和這個開關結果,組織數據製作動態圖表。

具體動態圖表做法參見《讓你的圖表動起來》課程,不再細述。這裏我們做的例子是打開開關後顯示平均線,你可以有各種動態圖表形式,如:



形狀的格式化能力是無限的,有了這個思路和做法,所以你實際可以 DIY 出各種蘋果風格的開關控件,比如:




大家可以用下面的數據,親自動手實現本例 DIY 控件的動態圖表,期待大家分享你 DIY 的開關效果哦。範例源文件我們近期會在全季學員羣裏分享。


學員人數

經1季 20880

一頁紙 14100

華1季 12340

華2季 10510

模板大法 10090

表格會説話 9850

圖表動起來 8290

動態儀表板 8160

經2季 6960

用地圖説話 3190


點擊【閲讀原文】,看看我們的手機網校,其中的《讓你的圖表動起來》是建議必學的,越早越好。

閲讀原文

TAGS: