2

Excel 2010 有一个烦人的功能,您可以单击几个按钮并让 Excel 通过电子邮件发送您正在处理的当前文件。据我所知,这种情况不会触发任何类型的保存(因为我有在 On Save 事件触发时启动的代码)。这很烦人,因为我故意设置了我的 Excel 应用程序以防止以 PDF 格式以外的任何格式保存文件,而 Microsoft 提供的这一特定功能完全消除了我的控制。

当我录制宏并访问此功能时(通过文件|保存并发送|作为附件发送),宏录制器显示点击此序列会导致以下代码触发:

Application.Dialogs(xlDialogSendMail).Open

据我所知,这是唯一触发的代码。

我的问题是:有什么方法可以测试这个事件,以便我可以将它停止在它的轨道上,或者至少弹出某种对话框来提醒用户不应该这样做?理想情况下,我需要知道如何在 Excel 2010 和 Excel 2007 中执行此操作,因为我的公司两者都使用。

4

2 回答 2

2

AFAIK 没有办法在 Excel VBA 中捕获它。

话虽如此,这是实现您想要的替代方案;)

这将使整个Save and Send选项仅对您的工作簿不可用。

首先从这里下载自定义 UI 编辑器。

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

安装自定义 UI 编辑器后,启动它并按照下面快照中给出的说明进行操作。

在此处输入图像描述

现在,当您打开文件时,您可以看到它Save And Send不可用。

在此处输入图像描述

EXCEL 2010 代码

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

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

    </backstage>
</customUI>

EXCEL 2007 代码

<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>

高温高压

跟进

Siddarth - 我如何让 Excel 2007 和 Excel 2010 都能正常工作?这是否意味着每个版本的 Excel 都需要我的文件版本?– Jay 11 分钟前

久经考验

如果您希望您的文件同时适用于 2007 和 2010,请插入“ Office 2007 自定义 UI 部件”和“ Office 2010 自定义 UI 部件”这两个部分

在此处输入图像描述

更多快照

在此处输入图像描述

于 2012-05-15T16:18:05.183 回答
0

我对工作场所的 Microsoft Office 应用程序没有太多经验,我只是通过学习获得了使用它的经验。难道您不能不将电子邮件与 Excel 关联,因此不会自动发送文件吗?

于 2012-05-15T15:53:56.627 回答