2021年5月3日 星期一

發洩文:股價 v.s物料走勢折線圖 自動繪製

 因為今天跌很多,我發洩。

來亂畫圖
說明:刪除資料,點選按鈕後,圖就畫好了。


發想過程
p.s就是手痠才亂寫工具



VBA:SPC管制圖自動化

 

圖1.自動化示意圖
說明:
    自動載入各資料根據各資料逐一繪製管制圖,並彙整到一張總表上,點選總表上的圖表就可以開啟檔案逐一檢視各管制圖歷史資料。

最近花了點時間,寫了一個製程管制的SPC管制圖系統,就整理這一篇摟,當然這過程也感謝朋友幫忙處理資料庫結構後,才能順利取得需要的製程中檢查資料
(廠商的資料庫有很多故事,超多的連續劇的拉)

圖表上設計有一個拖曳BAR可以控制

圖2.拖曳BAR功能
說明:可以拖曳回顧過去歷史資料。


圖3.超標時標示
說明:當存有異常資料時,圖表折線以紅色表示,並於圖表上標示異常點資料數值,並於原始資料反紅與特別標示出來。










VBA:插入圖檔入門篇



如何插入圖檔??

1.用到的物件為 ChartObjects物件

掌握要領:圖的種類、資料來源、圖的位置、X軸與Y軸、圖名

2.透過ADD方法插入圖

ChartObjects.Add(Left, Top, Width, Height)

Left, Top, Width, Height:分別為左、右、寬、高等距離與尺寸控制。

3.圖的種類設定:

ChartObjects. ChartType =???參考MSDS有那些設定,於空白EXCEL做圖新增時,通常第一張圖預設名稱為 Chart1,然後以此類推。

        With Worksheets(1).ChartObjects(1).Chart 

     If .ChartType = xlBubble '這裡作一個判斷,如果是泡泡圖就把尺規改成200

          Then .ChartGroups(1).BubbleScale = 200 

     End If

End With 

以下來看看如何設定"類別座標軸"中的標籤:

4.坐標軸設定:ChartObjects. Axes (Type, AxisGroup)MSDN

於 Chart1 的類別座標軸中新增座標軸標籤

With Charts("Chart1").Axes(xlCategory) 

   .HasTitle = True .AxisTitle.Text = "July Sales" 

End With

另外一個完整的例子: 畫一個散佈圖,並以行作畫圖依據

以下CODE內容,要自己作一個按鈕放進去歐,資料預設為A到B行歐。

N =  Application.CountA(Sheets("Sheet1").Range("A:A"))  取得有資料的最後一列位置

X = "數據序列X"

Y = "數據序列X"

 Set myRange = Sheets("Sheet1").Range("A" & 1 & ":B" & N)

 Set myChart = Sheets("Sheet1").ChartObjects.Add(100, 30, 400, 250)

With myChart.Chart

    .ChartType = xlXYScatterSmooth

      .SetSourceData Source:=myRange, PlotBy:=xlColumns 'PlotBy以行作畫圖依據

        .Axes(xlCategory, xlPrimary).HasTitle = True '開啟標籤

        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = X '類別標籤

        .Axes(xlValue, xlPrimary).HasTitle = True

        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = Y  '資料標籤

End With

 Set myRange = Nothing   '釋放物件                                            

 Set myChart = Nothing    '釋放物件                                          


VBA:練習畫折線圖(根據集保庫存資料)

畫持股變化折線圖:

 


怎畫的入門篇語法:MSDN

code:






2.整理原始資料:如下。


圖1.


這畫圖副程式,如上CODE內容,表頭長這樣:

持股對照圖(SHEET_NAME, RANGE_ADDRESS, DATA1, DATA2, xlColumnClustered_option, XLINE_WORD, DELTEE)

有7個變數要設定。

SHEET_NAME:資料位置的工作表

RANGE_ADDRESS:圖要放的儲存格位置

DATA1:第一組資料位置

DATA2:第二組資料位置

xlColumnClustered_option:畫圖設定,目前都設定0為主

XLINE_WORD:第二組資料的標題設定

DELTEE:是否把前回CHART物件刪除。

小編的資料,有特別整理出集保庫存分析,與每周收盤的股價,演練的資料為100張以下持股資料,小編的原始資料放在AL與AT這兩個儲存格,以及想把圖放在W14的儲存格位置,b_count_a這個變數是資料總筆數設定,小編是抓50筆所以"AL1:AL" & b_count_a的執行結果為"AL1:AL50"這樣歐,整體副程式呼叫設定如下:

Call 持股對照圖("集保庫存分析", "w14", "AL1:AL" & b_count_a, "AT1:AT" & b_count_a, 1, "當周最後收盤價", 0)

執行結果如下:

圖2.


VBA:練習畫圓餅圖(根據集保庫存資料)


整理持股等級的圓餅圖:

1.code:



入門篇:MSDN

2.先整理原始資料:如下。

圖1.
小編將原始資料放在AQ1開始的儲存格,所以資料來原設定如下:
.SetSourceData SOURCE:=Range("$AO$1:$AO$2,$AQ$1:$AQ$2,$AS$1:$AS$2,$AM$1:$AM$2")
因為這個副程式,小編是設定位置方式,大小固定,所以呼叫時,要給他加上儲存格位置。

EX:CALL 圓餅圖("A2") 
3.執行結果如下:
圖2.









南崁 五酒桶山

 單純分享照片,若是進來看地圖的朋友們,建議直接用GOOGLEMAP搜尋即可,非常簡單的路程歐












我的雷達:20240506

自己紀錄給自己看。 在大跌1400多點後,拉回中。 雷達顯示遠離風險區但離前一個底(大盤高點也不遠了)