ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 灰袍法师

[原创] VBA 全自动使用DLL 的各种封装方法 - 完全公开源码和方法(如用VSTO就什么都不用学)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-8-8 07:55 | 显示全部楼层

回复 10楼 灰袍法师 的帖子

本帖已被收录到知识树中,索引项:封装
谢谢老师指点!现在学习VB6.0封装模式,刚学到封装模块,窗体都还没学....您的资料我收下慢慢消化.
这是我的学习体验.
http://club.excelhome.net/thread-750345-1-1.html

TA的精华主题

TA的得分主题

发表于 2011-8-8 08:21 | 显示全部楼层
记号,记号,留下学习

TA的精华主题

TA的得分主题

发表于 2011-8-9 10:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
法师高人,受益匪浅,学习中!(不是客套话)

TA的精华主题

TA的得分主题

发表于 2011-8-9 13:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不错的VSTO资料,值得研究下。建议标题中部分文字改为引用VSTO封装的DLL,可能更吸引人。呵呵。

TA的精华主题

TA的得分主题

发表于 2011-8-9 13:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-8-9 14:09 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-8-9 14:41 | 显示全部楼层
原帖由 灰袍法师 于 2011-7-26 21:14 发表
令我感到非常郁闷的是:

在VB 6.0上开发一个 ActiveX DLL,编译成.dll文件,然后在Excel里面当作加载宏使用

让单元格可以直接输入自定义函数,这是一件非常简单的事情。不用三分钟我就研究出来了。

而 VB2 ...

C#能做的VB2010应该也行吧,都是调用.NET框架中的东西
C#能调用VB.NET的功能(inputbox 之类),不会VB.NET,只能看懂一点点,明显感觉VB.NET更适合office开发。

TA的精华主题

TA的得分主题

发表于 2011-8-9 14:56 | 显示全部楼层
感觉.NET下开发自定义函数用XLW比较好,超方便:
sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using xlwDotNet;
using xlwDotNet.xlwTypes;

namespace Example
{
    public class Class1
    {

        [ExcelExport("Hello World")]
        public static String HelloWorld()
        {
            return "Hello World!";
        }
        
        [ExcelExport("echo")]
        public static String echo1([Parameter("s ")]string s)
        {         
            return "echo:"+s ;
        }


        [ExcelExport("MyArray")]
        //MyArray代表一行或一列单元格区域,单元格为空则出错
        public static String fnMyArray([Parameter("MyArray")]MyArray m)
        {
            string s="";
            for (int i = 0; i < m.size;++i )
            {
                s = s + m.ToString();
            }
            return s;
        }
.....

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-9 19:30 | 显示全部楼层
原帖由 leolee82 于 2011-8-9 14:41 发表

C#能做的VB2010应该也行吧,都是调用.NET框架中的东西
C#能调用VB.NET的功能(inputbox 之类),不会VB.NET,只能看懂一点点,明显感觉VB.NET更适合office开发。


理论上是这样,但实际上我在google搜不到VB2007以上做的Excel加载宏,可以在单元格直接输入自定义函数,全是C#的例子。

而且微软msdn关于Excel加载宏的网页也没有给出VB的代码例子,还是只有C#。

用C#或者C++可以做这个,但是 多装+多用 一个语言去开发,那还不如只多装一个VB6.0,然后继续用VB开发。

用VB6.0去做这种加载宏极其简单,简单到吓我一跳,因为我在VB2010折腾半天都做不出来,还以为有多么高难,结果装了VB6.0只用三分钟就搞定,真是非常奇怪的事情。

[ 本帖最后由 灰袍法师 于 2011-8-9 23:26 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-8-10 14:15 | 显示全部楼层
法师,求教呀。
我正打算把一段VBA代码用VSTO的方法封装起来,所以这几天在学习相关知识。

1.您的 "VS2010的VSTO开发方法 - 工程打包.rar" (53.97 KB)  我下载解压后,在原目录可以用,如果把单独把xls和dll复制到别处就不能用了,不知何故?
2.如果我用VS2010打开工程文件,VS2010会强制对工程文件进行转换,转换之后xls上的功能就无效了,不知这转换是什么意思,也不知为何会这样。

刚接触VSTO,像样的问题都提不出来,您见谅。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 03:13 , Processed in 0.038364 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表