【Excel函數113】CALL函數 早期呼叫外部 DLL使用,現在被拋棄停用的舊函數

更新 發佈閱讀 7 分鐘

在 Excel 中,CALL 函數屬於早期的 XLM 宏語言,用於直接呼叫外部 DLL(動態連結程式庫)中的函數。由於安全性與相容性問題,CALL 函數在現代 Excel 中已預設停用,且不支援 64 位元環境。若需呼叫 DLL,應改用 VBA 的 Declare 語法。

🔹快速摘要(語法、用途、常見場景)

  • 用途:呼叫外部 DLL 中的函數(僅限 XLM 宏語言)
  • 語法=CALL("Library","Function","TypeText",Argument1,Argument2,...)
  • 常見場景:舊版 Excel 的系統整合、API 呼叫、硬體控制(現已不建議使用)

一、CALL 函數語法與用途

語法:

=CALL("Library","Function","TypeText",Arg1,Arg2,...)
  • "Library":DLL 檔案名稱(例如 "user32")
  • "Function":DLL 中的函數名稱(例如 "MessageBoxA")
  • "TypeText":參數與回傳值的型別定義(例如 "JJJC")
  • Arg1, Arg2,...:傳入的參數值

範例(不建議執行):

=CALL("user32","MessageBoxA","JJJC",0,"警告","標題",0)

此範例會呼叫 Windows API 顯示訊息框,但在現代 Excel 中通常會被阻擋。

二、範例教學:五個基礎 + 五個進階範例

🔸基礎範例

範例一:呼叫 Windows 訊息框(MessageBoxA)

=CALL("user32","MessageBoxA","JJJC",0,"Hello","Title",0)

範例二:呼叫自訂 DLL 中的函數

=CALL("mydll","MyFunction","JJ",100,200)

範例三:傳入字串參數

=CALL("user32","MessageBoxA","JJJC",0,"測試訊息","標題",0)

範例四:回傳整數結果

=CALL("kernel32","GetTickCount","J")

範例五:處理錯誤型別定義

=CALL("user32","MessageBoxA","JJJX",0,"錯誤","標題",0)

回傳 #VALUE! 或導致 Excel 異常。

🔸進階範例(僅供理解,不建議實作)

範例六:搭配 REGISTER 函數註冊 DLL 函數

=REGISTER("user32","MessageBoxA","JJJC","警告","標題",0)

範例七:搭配 XLM 宏語言建立自動化流程

=CALL("mydll","AutoProcess","JJJ",A1,B1,C1)

範例八:呼叫硬體控制 DLL(如 COM 埠)

=CALL("serial.dll","OpenPort","J",1)

範例九:處理多型別參數(整數 + 字串)

=CALL("mydll","SendCommand","JC",100,"CMD")

範例十:搭配 GET.CELL 擷取儲存格資訊後傳入 DLL

=CALL("mydll","ProcessCell","J",GET.CELL(1,A1))

三、常見問題解答(FAQ)

Q1:CALL 為什麼會被停用?

因為它可直接呼叫外部程式庫,可能造成安全風險或執行惡意程式碼。

Q2:CALL 可以在 VBA 中使用嗎?

不行,VBA 使用 Declare PtrSafe Function 搭配 Lib 來呼叫 DLL,不使用 CALL 函數。

Q3:CALL 是否支援 64 位元 Excel?

不支援,CALL 屬於 XLM 宏語言,與 64 位元環境不相容。

Q4:CALL 是否可用於一般函數設計?

不建議,現代 Excel 開發應使用 VBA 或 Office JavaScript API。

Q5:CALL 是否可在 Excel 365 使用?

預設為停用,需啟用 XLM 宏支援,且仍有安全風險。

四、注意事項與錯誤排除

  • CALL 函數屬於高風險函數,可能遭防毒軟體或 Excel 安全性機制阻擋
  • 若 DLL 或函數不存在,會回傳 #VALUE! 或導致 Excel 異常
  • 若型別定義錯誤,可能造成記憶體錯誤或系統崩潰
  • 若需進行 DLL 呼叫,請改用 VBA 的 Declare 語法
  • CALL 函數無法在 Excel Web 或 Mac 版本使用

五、延伸技巧與相關函數

若你有 DLL 整合或系統呼叫需求,以下是比 CALL 函數更安全、現代化的替代方案:

首先,VBA 的 Declare Function 語法是目前最推薦的方式。它能安全地呼叫 DLL 函數,支援 64 位元環境,並可明確定義參數型別與錯誤處理邏輯。這是 CALL 函數在 VBA 中的正式替代方案

其次,若你正在開發 Excel Online 或跨平台應用程式,Office JavaScript API 提供了更現代化的整合方式。它支援網頁端執行,並能與 Excel、Outlook、Teams 等 Office 元件互動,適合雲端與企業級開發。

若你的目的是資料整合與轉換,Power Query(M 語言)是更合適的工具。它不需呼叫外部 DLL,就能完成複雜的資料清理、合併與轉換流程,並支援多種資料來源。

最後,若你想在 Excel 中建立自訂邏輯或批次處理,Lambda 函數與 MAP 函數是現代 Excel 的首選。它們能在儲存格中建立可重複使用的邏輯,並批次處理整欄資料,完全不需依賴外部程式庫。

這些工具不僅更安全,也更符合現代 Excel 的設計理念,建議全面取代 CALL 函數的使用。

六、結語與延伸閱讀推薦

CALL 函數是 Excel 中極少數可直接呼叫外部程式庫的函數,但因安全性與相容性問題,已不建議使用。若你有 DLL 整合需求,請改用 VBA 的 Declare Function 或探索 Office JavaScript API。

延伸閱讀:

  • [Declare Function 教學]:VBA 呼叫 DLL 的安全做法
  • [Excel Lambda 函數教學]:現代自訂邏輯設計工具
  • [Power Query 教學]:資料整合與轉換的首選工具
留言
avatar-img
蝦仁藥師_臨床輕鬆學的沙龍
65會員
340內容數
哈囉~!這裡主要在分享醫療知識,還有記錄下學習程式語言的各種筆記,偶爾穿插一些個人的淺見與有趣分享,希望大家都可以在這邊得到有用的資訊~!
2025/10/31
在日常資料處理中,統計數量、加總金額、計算平均值等動作常常重複進行。若能透過 VBA 一鍵完成統計並產出摘要,不僅節省時間,也能避免公式錯誤與人工疏漏。本文將教你如何建立一個「一鍵統計」功能,自動計算指定欄位的統計值並輸出至摘要區塊。
Thumbnail
2025/10/31
在日常資料處理中,統計數量、加總金額、計算平均值等動作常常重複進行。若能透過 VBA 一鍵完成統計並產出摘要,不僅節省時間,也能避免公式錯誤與人工疏漏。本文將教你如何建立一個「一鍵統計」功能,自動計算指定欄位的統計值並輸出至摘要區塊。
Thumbnail
2025/10/30
在 Excel 中處理日期資料時,若需建立年度分類、計算年差或進行報表統計,YEAR 函數能從日期值中擷取「年份」的部分(四位數整數),是日期拆解與年度邏輯判斷的常用工具。 用途:從日期中擷取「年份」的整數值(如 2025) 語法:=YEAR(日期值),年份會傳回成1900-9999內的整數
Thumbnail
2025/10/30
在 Excel 中處理日期資料時,若需建立年度分類、計算年差或進行報表統計,YEAR 函數能從日期值中擷取「年份」的部分(四位數整數),是日期拆解與年度邏輯判斷的常用工具。 用途:從日期中擷取「年份」的整數值(如 2025) 語法:=YEAR(日期值),年份會傳回成1900-9999內的整數
Thumbnail
2025/10/30
在 Excel 中處理工期推算、到期日計算或跨國排程時,WORKDAY.INTL 函數能根據起始日期與工作日天數,排除自訂的週末與假日後回傳目標日期。它是 WORKDAY 函數的進階版本,支援非標準工時與多國假期設定,適合用於行政報表、人事考勤與專案管理。
Thumbnail
2025/10/30
在 Excel 中處理工期推算、到期日計算或跨國排程時,WORKDAY.INTL 函數能根據起始日期與工作日天數,排除自訂的週末與假日後回傳目標日期。它是 WORKDAY 函數的進階版本,支援非標準工時與多國假期設定,適合用於行政報表、人事考勤與專案管理。
Thumbnail
看更多
你可能也想看
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
在這篇教學中,我們將介紹如何使用 Excel VBA 來發送訊息到 LINE Notify。LINE Notify 是 LINE 提供的服務,可以透過 API 發送訊息到 LINE 上。這篇教學將帶你步驟一步完成設置。
Thumbnail
在這篇教學中,我們將介紹如何使用 Excel VBA 來發送訊息到 LINE Notify。LINE Notify 是 LINE 提供的服務,可以透過 API 發送訊息到 LINE 上。這篇教學將帶你步驟一步完成設置。
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗 🔗E
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗 🔗E
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗
Thumbnail
Function的使用方式
Thumbnail
Function的使用方式
Thumbnail
EXCEL設計新思維,即日起新增了一個新的房間【EXCEL儀表板】,什麼是EXCEL儀表板呢? Excel 儀表板是一種視覺化工具,用於展示和分析數據,幫助用戶快速理解和決策。以下是Excel儀表板的主要特點和功能簡介: 特點 視覺化展示: 使用圖表、圖形和表格來直觀展示數據。 常見的圖
Thumbnail
EXCEL設計新思維,即日起新增了一個新的房間【EXCEL儀表板】,什麼是EXCEL儀表板呢? Excel 儀表板是一種視覺化工具,用於展示和分析數據,幫助用戶快速理解和決策。以下是Excel儀表板的主要特點和功能簡介: 特點 視覺化展示: 使用圖表、圖形和表格來直觀展示數據。 常見的圖
Thumbnail
在Excel中實作使用者介面(UI)是一個有趣且實用的技能,能夠幫助你更好地呈現資料、提供功能並增強使用者體驗。本文將逐步介紹如何在Excel中建立基本的UI元素,例如按鈕、下拉式選單和文字框,並擴展功能,例如資料驗證和動態更新。
Thumbnail
在Excel中實作使用者介面(UI)是一個有趣且實用的技能,能夠幫助你更好地呈現資料、提供功能並增強使用者體驗。本文將逐步介紹如何在Excel中建立基本的UI元素,例如按鈕、下拉式選單和文字框,並擴展功能,例如資料驗證和動態更新。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News