2012-05-15 69 views
2

Excel 2010有一個惱人的功能,您可以在其中單擊幾個按鈕並將Excel電子郵件從當前正在處理的文件中取出。據我所知,這種情況發生時不會觸發任何保存(因爲我的代碼會在On Save事件觸發時觸發)。這很煩人,因爲我故意設置我的Excel應用程序以防止以PDF格式以外的任何其他格式保存文件,並且這些特定的Microsoft提供的功能完全刪除了我的控制權。在Excel 2010中測試應用程序級別對話框

當我錄製宏並訪問該功能(通過文件|保存&發送|作爲附件發送),宏記錄顯示,達不到這個序列會導致下面的代碼來火:

Application.Dialogs(xlDialogSendMail).Open 

據正如我所知道的那樣,這是唯一觸發的代碼。

我的問題是這樣的:有沒有什麼辦法來測試這個事件,以便我可以停止它的軌道或至少彈出某種對話框來提醒用戶不應該這樣做?理想情況下,我需要知道如何在Excel 2010和Excel 2007中執行此操作,因爲我的公司使用了兩者。

+0

+ 1好的問題:) –

回答

2

AFAIK沒有辦法在Excel VBA中捕獲它。

話雖如此,這裏是一個備選達到你想要的東西;)

這將使只有你的工作簿整個Save and Send選項不可用

首先從這裏下載自定義UI編輯器。

http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspx

您已經安裝了自定義用戶界面編輯器後,啓動它,並按照下面的快照給出的指令。

enter image description here

現在,當你打開你的文件,你可以看到,Save And Send不可用。

enter image description here

EXCEL 2010代碼

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> 
    <backstage> 

     <tab idMso="TabShare" visible="false"/> 

    </backstage> 
</customUI> 

EXCEL 2007 CODE

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
    <ribbon startFromScratch="false"> 
    <officeMenu> 
     <menu enabled="false" idMso="FileSendMenu" showImage="true" showLabel="true" /> 
    </officeMenu> 
    </ribbon> 
</customUI> 

HTH

FOLLOWUP

Siddarth - 如何使Excel 2007和Excel 2010的這項工作?這是否意味着我需要每個版本的Excel的文件版本? - 周杰倫11分鐘前

久經考驗

如果你希望你的文件爲2007年和2010年的工作,然後插入兩節「Office 2007的自定義用戶界面部分」和「Office 2010的自定義用戶界面部分

enter image description here

更多快照

enter image description here

+0

Siddarth - 非常感謝。我的分析師會試試看看會發生什麼! – Jay

+0

Siddarth - 我如何爲Excel 2007和Excel 2010做這項工作?這是否意味着我需要每個版本的Excel的文件版本? – Jay

+0

更新了上面的帖子:) –

0

我對工作場所的Microsoft Office應用程序不太熟悉,我只是通過學習使用它。難道你不能只將電子郵件與Excel關聯,因此沒有文件自動發送?

+0

不,我不這麼認爲。這是Excel中相當低級的功能。郵件功能與Outlook不關聯,並且該按鈕基本上只是調用Outlook對話框。 – Jay