如果將巨集新增至工作簿中,是否可以將 Excel 工作簿自動儲存為啟用巨集?

如果將巨集新增至工作簿中,是否可以將 Excel 工作簿自動儲存為啟用巨集?

目前,在 Excel 2010 中,當我嘗試將建立的工作簿儲存為 .xlsx 檔案但新增了 VBA 函數或子程式時,Excel 會提示(以迂迴的方式)詢問我是否要變更它至.xlsm 檔案。如果這個問題的預設答案是“是的,我不想刪除我在處理此文件時所做的所有程式設計工作,因為我保存了”,這對我來說不是問題,但您需要主動單擊或切換到「否」按鈕,否則它會另存為.xlsx 文件,並且您會丟失所有模組。

這是我遇到的唯一一種預設選項是刪除資料而不是保存資料的情況。我知道我丟失了一些工作主要是我的錯,我應該更加小心,但我真的很想知道我是否可以禁用此訊息或以某種方式更改預設值。

答案1

但這很混亂而且危險。

  1. 允許 VBA 讀取/寫入 VBA(檔案 > 選項 > 信任中心 > 信任中心設定 > 巨集設定 > 信任對 VBA 專案物件模型的存取)
  2. 建立個人巨集工作簿(如果您還沒有)
  3. ThisWorkbook個人巨集工作簿的物件中,使用事件將+Workbook_Open對應到其他某個巨集。 (會是這樣的)CtrlSApplication.OnKey "^s", "saveAsMacroIfMacrosExist"
  4. 使用該Workbook_BeforeClose事件再次關閉 ( Application.OnKey "^s")
  5. 將該子程式(而非函數)寫入個人巨集工作簿的模組中。 (這是留給讀者的練習,但我找到了一個片段這裡我沒有測試,但應該測試工作簿中是否有巨集。
  6. 使用Ctrl+S來儲存文件,而不是使用工具列或“文件”>“儲存”。

重點:這要求您永久允許存取 VBA 專案物件模型,這通常是一個壞主意。

答案2

您無法在工作簿層級變更此設定。

但是,您可以允許 Excel 預設情況下始終啟用所有巨集。

  1. 按一下“檔案”>“選項”。
  2. 點選“信任中心”和“信任中心設定”。
  3. 點擊巨集設定並啟用所有宏

它位於文件

相關內容