呼叫 Excel 函數來求取 [最小公倍數]

呼叫 Excel 函數來求取 [最小公倍數]

如何不使用數學運算 而直接使用 Excel LCM 函數來取 [最小公倍數 

    Dim xls As Object ' 建立物件    

    Set xls = CreateObject("Excel.Application") ' 建立 Excel Application 物建實體 ( 個體化 

    ' Excel 工作簿(集合物件) 開啟 atpvbaen.xla 增益集

    ' xls.LibraryPath Excel 函式庫資料夾路徑 -  1

    ' 呼叫 RunAutoMacros 方法來執行巨集 (Macro) -  2

    ' 1 xlAutoOpen - 3

    xls.Workbooks.Open(xls.LibraryPath & "\Analysis\atpvbaen.xla").RunAutoMacros 1

    ' 使用 atpvbaen.xla 增益集中 LCM 函數來求取 6 , 12 , 144 的最小公倍數

    MsgBox xls.Run("atpvbaen.xla!LCM", 6, 12, 144) ' 方法1

    ' GetMacroRegId 取得巨集登錄(註冊)ID

    ' 透過 GetMacroRegId 來取得 LCM 函數來計算 6 , 12 , 144 的最小公倍數

    MsgBox xls.Run("GetMacroRegId(""lcm"")", 6, 12, 144) ' 方法2   

    xls.Quit ' 離開 ; 關閉 Excel

    Set xls = Nothing ' 釋放 Excel 應用程式物件

By the way , 同理 .. 若語言本身無某些特定數學函數 , 則可運用此一方法來呼叫 Excel 函數使用

1 :

Excel 常用預設路徑

' 傳回取代啟動資料夾的名稱

        Application.AltStartupPath     

' 傳回目前工作簿的路徑 (檔案未存檔時傳回空字串)

        ActiveWorkbook.Path 

' 現用目前工作簿的路徑及檔案名稱(檔案未存檔時只傳回暫存檔名)            

        ActiveWorkbook.FullName

' 傳回儲存範本所在的網路路徑,如果指定的網路路徑不存在,本屬性將傳回一空字串          

        Application.NetworkTemplatesPath 

' 傳回儲存範本所在的區域路徑

        Application.TemplatesPath      

' 傳回Excel程式完整路徑

        Application.Path              

' 傳回或者設定 Microsoft Excel 開啟檔案時使用的預設路徑

        Application.DefaultFilePath      

' 傳回啟動資料夾的完整路徑

        Application.StartupPath          

' 傳回程式庫資料夾的路徑

        Application.LibraryPath         

' 傳回使用者電腦上 COM 增益集安裝位置的路徑 (2000以上)

        Application.UserLibraryPath      

' 傳回路徑分隔符號

        Application.PathSeparator        

2 :

Excel 內有兩個自動巨集 , 一個是 Auto_Open , 一個是 Auto_Close

作用 : 

Excel 開啟內含巨集的工作簿時 , 會自動執行 Auto_Open , 當關閉時會執行 Auto_Close

        但若透過程式呼叫建立 Excel 應用程式物件時 ( OLE Automation ; ActiveX )

        則並不會執行 Auto_Open , Auto_Close , 因此需透過 RunAutoMacros 方法來設定執行(動作)

3 :

RunAutoMacros 方法

        Workbooks.RunAutoMacros(引數)

常數說明

        xlAutoOpen : 1 - 自動開啟巨集

        xlAutoClose : 2 - 自動關閉巨集

        xlAutoActivate : 3 - 巨集作用

        xlAutoDeactivate : 4 - 使巨集無效