从 VSTO PowerPoint 功能区调用 VBA AddIn 宏

2023-12-10

我在这个问题上被困了几个小时:

我正在用 C# 开发一个 PowerPoint 插件,我想使用另一个插件(PPAM 文件)中的宏。 PPAM 文件已安装并启用。

在应用程序参考中我发现我需要使用Application.Run方法,但我无法让它工作(什么都没发生)...这是我的代码:

Globals.ThisAddIn.Application.Run("PPspliT.ppam!PPspliT.PPspliT_main", null);

PPspliT.ppam是已安装的插件(它位于这里:C:\Users\XXXX\AppData\Roaming\Microsoft\AddIns\PPspliT\)

该模块中的PPspliT_main宏被调用被命名PPspliT.

我觉得奇怪的另一件事是,即使宏没有任何参数, Run 也需要接受两个参数(这就是为什么我将 null 作为第二个参数).

我还尝试使用以下命令以编程方式安装插件:

String addinPath = @"C:\Users\XXXXX\AppData\Roaming\Microsoft\AddIns\PPspliT";
var macroFilePath = Path.Combine(addinPath, "PPspliT.ppam");
var addins = Globals.ThisAddIn.Application.AddIns.Add(macroFilePath);
if (!(addins.Registered == MsoTriState.msoTrue && addins.Loaded == MsoTriState.msoTrue))
{
  addins.Registered = MsoTriState.msoTrue;
  addins.Loaded = MsoTriState.msoTrue;
}
var app = Globals.ThisAddIn.Application;
string macroToInvoke = string.Format("{0}!{1}", "PPspliT.ppam", "PPspliT.PPspliT_main");
Globals.ThisAddIn.Application.Run(macroToInvoke, null);

感谢您的帮助! 阿卡西奥


这件事让我发疯,但我找到了如何让它发挥作用!这是我所做的(使用这个http://support.microsoft.com/kb/306682 :

因此,正如我在问题中所解释的,我首先以编程方式注册并加载加载项,然后执行以下操作:

    private void RunMacro(object oApp, object[] oRunArgs)
    {
       oApp.GetType().InvokeMember("Run",
       System.Reflection.BindingFlags.Default |
       System.Reflection.BindingFlags.InvokeMethod,
       null, oApp, oRunArgs);
    }

Globals.ThisAddIn.RunMacro(Globals.ThisAddIn.Application , new object[] {"PPspliT_main"});

感谢大家的帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 VSTO PowerPoint 功能区调用 VBA AddIn 宏 的相关文章

  • “是”运算符给我 False,我可以知道原因吗?为什么? [复制]

    这个问题在这里已经有答案了 在编写 MS Excel VBA 代码时 我遇到了一个简单的问题 如下所示 上面的一点问题都没有 下层有问题 它给了我 假 Dim my01 my02 Set my01 Sheets 1 Set my02 She
  • Excel 区分大小写的 COUNTIF 带通配符:本机函数?

    我正在尝试找到一个本机 Excel 函数 或其组合 该函数将以 COUNTIF 的方式精确运行 即处理通配符 但区分大小写 我已经成功使用了 SUMPRODUCT EXACT 函数 它们确实执行区分大小写的计数 但问题是我无法让它们识别通配
  • 如何修复在 Excel VBA 中使用查找函数的错误

    我尝试从另一张表中搜索值 而不是使用 FIND 函数 Private Function Search rng As Range FindString As String As Range With rng Set Search Find w
  • VBA Excel 大数据操作需要很长时间

    我有两个Excel文件 第一个 Excel 文件包含 人员姓名 和 出席总天数 列 前任 PersonName TotalDays xyz abcd 另一个 Excel 文件包含人员姓名 日期和状态 出席 缺席 PersonName Dat
  • 将 Dir 与旧文件后缀一起使用

    最近问的一个question https stackoverflow com questions 68282702包括代码 strFilename Dir fPath xls 它 成功 用于查找以xls and xlsx 我的问题是 为什么
  • Windows 更新后 Excel 2010 ActiveX 控件不再工作 [重复]

    这个问题在这里已经有答案了 因此 在工作中 我在安装了最新的 Windows 7 更新 包括 Microsoft Office 2010 更新 后遇到了这个问题 更新的日期是今天 2014 年 12 月 12 日 更新后 我在 Excel
  • 如何从 500 个 .xls Excel 文件中的单元格中获取数据?

    我想问你如何从许多Excel中的几个确定的 并且总是相同的 单元格中获取数据 xls文件 即我有一个清单 xls文件位于一个文件夹中 每个文件内部都有相同的表 但具有不同的值 我想从以下位置获取数据A1 C2 E3从文件夹中的所有文件中提取
  • 使用@@Identity

    我想知道如何从另一个数据库的表中获取最近生成的自动编号值 目前我正在这样做 Do Until rsA EOF Inserts new row here works Set rs New ADODB Recordset rs Open SEL
  • 将图表导出为图像有时会生成空文件

    I m doing a macro that exports all the charts in the sheet and then opens Outlook and attaches them However I ve noticed
  • VBA 激活 Internet Explorer 窗口

    我正在制作一个宏 用于打开 Internet Explorer 导航并登录网站 一切正常 但我需要将 IE 窗口放在前面并激活它 这样我就可以使用SendKeys在上面 我发现网站和视频在名为的命令上有不同的方法AppActivate我已经
  • 将按颜色过滤的行复制到新工作表

    我有一个 Excel 电子表格 如下所示 Job1 Job2 Job3 Job4 Job5 Job1 Job2 Job3 Job4 Job5 每行和列之间的单元格颜色不同 我需要按橙色对每列进行排序 然后将行名称复制到新工作表中 所以最后我
  • 运行代码(而不是查询)时如何在状态栏上显示进度

    我已经发布了有关在 MS Access 2010 中运行查询时更新状态栏的问题 请参阅在 MS Access 中运行一系列查询时如何在状态栏上显示进度 https stackoverflow com questions 27765376 h
  • 在 Excel 表格中选择多列的代码

    我是 Excel VBA 新手 我需要修改我的代码 以便我能够进一步进行 我想在 Excel 表格中选择多个表格列 这是我的代码 Dim ws As Worksheet Dim tbl As ListObject Set ws Sheets
  • VBA 有没有办法了解未使用的变量?

    标准 VBA 编辑器中是否有工具 方法或设置来警告已被修改的变量Dim med 但没有被使用 MZ Tools http www mztools com index aspx将搜索您的代码并告诉您哪些内容未被使用 VBA的版本可以找到her
  • VBA 中的匈牙利语好吗?

    我在 Net 中不使用匈牙利语 str int 前缀 但我仍然发现它在 VBA 中很有用 因为在 VBA 中很难看到类型 这很糟糕吗 不必要 也许我错过了一些东西 我真的很感激任何反馈 我想知道有一段时间了 谢谢大家 我想说 这种匈牙利符号
  • VBA ByRef 参数类型不匹配

    最初在我的主代码部分中 我有一个丑陋的 if 语句 尽管它会运行丑陋 我决定将其设为我要调用的函数 这导致我收到错误 编译错误 ByRef 参数类型不匹配 我的假设是该函数需要正确引用 尽管我一直在阅读文档并且不明白为什么 gt 声明 Sh
  • 在Excel中,我可以使用超链接来运行vba宏吗?

    我有一个包含多行数据的电子表格 我希望能够单击一个单元格 该单元格将使用该行中的数据运行宏 由于行数总是在变化 我认为每行的超链接可能是最好的方法 ROW MeterID Lat Long ReadX ReadY ReadZ CoeffA
  • 如何使用vba复制Excel工作表中的动态范围

    我试图使宏中的范围是动态的 而不指定最后一行x Sheets SheetName Range A2 K1000 Copy在 1000 行中 我想将其更改为动态 因为有时我的数量会更少或更多 尝试这个 Sub Test Dim lRow as
  • 在 Excel 中自动复制和粘贴特定范围的最佳方法是什么?

    我对 VBA 非常陌生 我想自动化一项任务 但不知道从哪里开始 我有一个如下所示的数据集 样本数据 https i stack imgur com jxqFI png 我想做的是循环遍历 A 列 如果其中有内容 始终是电子邮件 请选择所有行
  • Excel - 公式或宏根据链接到另一个单元格的另一个单元格填充单元格

    在 Excel 中 我试图根据其他两个单元格中包含的值创建一个单元格 我需要单元格 X 和 Y 来获取基于单元格 L 和 的数据 就像这样 X Y L 1 2 3 4 5 6 A 6 1 1 6 1 6 1 7 1 7 2 7 2 8 1

随机推荐

  • 使用变量中存储的类型进行 PowerShell 类型转换

    我想将 NET 对象转换为另一个 NET 类型 但是 目标 NET类型 类 存储在变量中 我不想使用 asPowerShell 运算符 我正在使用复杂的非原始类型 你将如何实现这一目标 例如 这是 PowerShell 的方式来做到这一点
  • Linux 上具有零端口的 CommPortIdentifier.getPortIdentifiers

    我正在尝试连接 ubuntu 上的串行端口 但是 它对我不起作用 我在 Windows 上成功运行了同一个项目 只是使用了不同的驱动程序 问题是我在使用它时无法加载任何端口 CommPortIdentifier getPortIdentif
  • 授予对封装容器的访问权限

    class X public typedef std list
  • 如何使用 C# 解压 docx 文件?

    如何使用 C 解压 docx 文件 新的 Office 文件扩展名 docx potx xlsx 等 在上传到 Web 服务器然后下载时会变成 zip 文件 这些文件格式现在使用 Open XML 文件格式系统 因此它们与 Google O
  • 将 .org 指令与 .data 部分中的数据一起使用:与 ld 相关

    在我努力了解如何使用 GNU binutils 来构建一个简单的引导加载程序时 使用gas我遇到过这样的问题 如何告诉链接器将数据放置在使用 org 推进位置计数器的文件中 同时将文件大小保持在 512 字节 我似乎找不到办法做到这一点 尝
  • 创建 Gmail 共享链接

    我想在我的单页 Web 应用程序上放置一个按钮 允许用户通过 Gmail 发送链接 我发现有些网站 例如 addthis com 提供了这样的按钮 但是该按钮自动使用网址栏中的链接 由于我有一个单页 Web 应用程序 因此网址栏中的链接将始
  • 嵌入数组中嵌入文档中的项目字段

    我有以下查询 cursor self postCol aggregate graphLookup from pCol startWith parent connectFromField parent connectToField id as
  • Java 中的散列——结构和访问时间

    我正在寻找两个不同但相关的论点的验证 上述论点 A 及以下 B Q 中的第一行行注释 A 道路HashMap的结构是 a HashMap是一张普通的桌子 这就是直接内存访问 DMA 背后的整个想法HashMap 或一般的散列 首先 是将这种
  • 微软团队机器人自适应卡片轮播删除卡片

    我正在将 Microsoft 团队机器人与 Node js 一起使用 我正在渲染自适应卡的轮播 并在每张卡上执行操作 我的要求是删除单击该操作的单个卡片 是否可以 当前代码如下所示 我尝试过删除活动 但这会删除整个轮播 const Turn
  • 使用我的数据库中的数据计算年龄

    这是我当前正在使用的代码 但它不起作用 Geboortedatum 在荷兰语中是出生日的意思 mysql connect xxx xxx xxx mysql select db xxx result mysql query select G
  • 如何从 Facebook Graph API 获得响应能力?

    我可以从 Facebook Graph API 中提取一个指标来告诉我其中一个 两个吗Response Rate and or Average Response Time从页面 我将附上我所指内容的屏幕截图 当我进入 设置 gt 见解 gt
  • 无法在 AutoMapper 5 中从 ViewModel 映射到 ApplicationUser

    我有一个从 ApplicationUser 基类 ASP NET Identity 继承的 Student 类 它有一个名为 StudentViewModel 的 ViewModel 如下所示 实体类 public class Applic
  • Google Play 说我的 apk 使用两个本机平台(我的库),因此它支持 0 台设备

    当我在 Google Play 上发布 apk 时 它显示 支持 0 台设备 在 apk 描述的底部写着 本机平台 actionbarsherlock SherlockNavigatorDrawer 这些是我用于我的项目的库 它们不是 ja
  • 在 C++ 中模拟 lambda 的复制赋值运算符

    这个问题有两个部分 Firstly 有人可以解释 C 禁用 lambda 的复制赋值运算符背后的基本原理吗 如果您要允许复制构造函数 为什么不允许复制赋值运算符呢 Secondly 如何在不强迫人们编写 C 03 风格函子或使用 std f
  • MediaElement 和 RTSP

    MediaElement 支持 RTSP 吗 我有一个流正在运行 我可以通过以下方式使用 VLC 播放器使用该流 rtsp 192 168 1 17 554 stream 但是 当尝试使用 Windows Media Player 时 我无
  • 如何将一个巨大的矩阵逐行写入文件(fortran 90)

    我想将一个包含大量数据的矩阵逐行写入文件中 例如 我有一个 100 100 的矩阵 我想在文件中以 100 100 的形式保存它 但是 它不起作用 以下是我的代码和一些描述 N和M是数百左右的整数 RECL 是预期长度我设置了文件 但在这里
  • 如何通过行列切换进行矩阵转换?

    我有一个由元素组成的方阵 1 或 0 第 i 行切换会切换所有第 i 行元素 1 变为 0 反之亦然 并且第 j 列切换切换所有 第 j 列元素 我有另一个方阵 大小相似 我想将初始矩阵更改为 使用最少切换次数的最终矩阵 例如 0 0 1
  • 使用清单的 DLL 重定向

    我需要可靠地重定向应用程序对特定 DLL 的查找 使用 app exe local 方法不起作用 因为如果应用程序具有清单 嵌入或单独的文件 则本地文件将被忽略 因此 我尝试通过在清单中将 DLL 定义为私有程序集来进行 DLL 重定向 我
  • 线性时间排序? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 给定 0 n 3 1 范围内的 n 个整数的输入集 提供线性时间排序算法 这是我周四测试的回顾 我不知道如何解决这个问题 也看看相关的排序 鸽巢排序 or 计数排序 也基数排序正如普
  • 从 VSTO PowerPoint 功能区调用 VBA AddIn 宏

    我在这个问题上被困了几个小时 我正在用 C 开发一个 PowerPoint 插件 我想使用另一个插件 PPAM 文件 中的宏 PPAM 文件已安装并启用 在应用程序参考中我发现我需要使用Application Run方法 但我无法让它工作