.NET-10. 其他-VSTO+VBA

这篇具有很好参考价值的文章主要介绍了.NET-10. 其他-VSTO+VBA。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。



前言

主要用于Excel插件。


VSTO 外接程序介绍:

Excel、Word、PowerPoint、Project、Visio等等Office应用程序
相对简单

VSTO参考链接:

知乎教程、官网参考、Api

VSTO 例子:

1. 下标从1开始
public static int GenerateRandomSeed() => Math.Abs((int)DateTime.Now.Ticks);//根据时间生成序列号
public Excel.Application excelApp;//Excel应用程序变量
excelApp = Globals.ThisAddIn.Application;//构造函数里面
Excel.Workbook wbk = excelApp.ActiveWorkbook;//wbk为活动工作簿
wbk.Path//当前路径
Excel.Sheets sheets = excelApp.ActiveWorkbook.Worksheets;//wbk为活动工作表
TaFirstList = ((dynamic[,])sheet.Range["A1", "N1"].Value).OfType<string>().ToList();
TaFirstList = ((dynamic[,])sheet.Range["A1", "N1"].Value).OfType<dynamic>().ToList();//为null的也算一个
//赋值:
var firstlist = new string[]{1,2,3,4,5,6};
Excel.Workbook Nowbook = excelApp.Application.Workbooks.Add();//新增一个工作薄
Nowbook.Sheets[1].Name = "";
Nowbook.Sheets[1].Range["A1"].Resize[1, firstlistTPlm.Length] = firstlistTPlm;
var str = wbk.Path + "\\" + wbk.Name.Split('.').First() + "test.xlsx";
Nowbook.Sheets[1].Cells[1, 2].Value = flag;
if (File.Exists(str)) File.Delete(str);
Nowbook.SaveAs(str);

//询问框
//添加一个询问框:
 public partial class InputDialog : Form
{
    public InputDialog()
    {
        InitializeComponent();
    }
    public delegate void TextEventHandler(string strText);

    public TextEventHandler TextHandler;

    private void btnOk_Click(object sender, EventArgs e)
    {
        if (null != TextHandler)
        {
            TextHandler.Invoke(name.Text);
            DialogResult = DialogResult.OK;
        }
    }

    private void txtString_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (Keys.Enter == (Keys)e.KeyChar)
        {
            if (null != TextHandler)
            {
                TextHandler.Invoke(name.Text);
                DialogResult = DialogResult.OK;
            }
        }
    }

}
//调用类
public static class InputDialogWin
{
    public static DialogResult Show(out string strText)
    {
        string strTemp = string.Empty;

        InputDialog inputDialog = new InputDialog();
        inputDialog.TextHandler = (str) => { strTemp = str; };

        DialogResult result = inputDialog.ShowDialog();
        strText = strTemp;

        return result;
    }
}
//使用:
DialogResult dialogResult= InputDialogWin.Show(out currentName);
if (dialogResult == DialogResult.Cancel) return;

VBA:

参考链接:

语言基础
教程一文章来源地址https://www.toymoban.com/news/detail-639231.html

1. 开发工具=>VBA编辑器=>视图 - 立即窗口:
? 1+1 ? len("qiou.eu") //问号是一定的

VB 基本语法部分
Sub/Function/Class/Module 【1】
数据类型 【3】
String, Number, Date以及常用方法
Array
流程控制 【2】
If While Foreach Fori Switch
Goto, With
异常处理 【1】
On Error xx
抛出及捕获异常
Excel对象模型
Range 【2】
Worksheet, Workbook, Application 【2】
不同Office产品之间的交互 (*视反响决定)2】
MS Office 常用内置库
FileSystemObject 以及基本IO 【2】
Dictionary 以及容器操作 【2】
RegExp 以及 高阶字符串处理技巧 【2】
JavaScript-Engine (*视反响决定)2】
Excel事件模型以及用户表单
Workbook, Worksheet事件模型 【1】
Excel用户表单 【2】
面向对向编程,定义自己的Class文件
简单的OOP(Object Oriented Programming)介绍 【2】
实例 (*安利我自己的 Excel Dicts/Lists库, 视反响决定)5//变量强制申明, VBA版的"use strict;"
//此段VBA人代码中的程序入口main
Option Explicit 
Public Sub main()   
    helloWorld   
End Sub
' pop out the message
Private Function helloWorld() 
    MsgBox "Hello World!" 
End Function
---
Option Explicit
Public Sub main()  
    Debug.Print getLongerStringLen("qiou.eu", "sgfxq") 
End Sub
' return the length of the longer string
Private Function getLongerStringLen(str1 As String, str2 As String) As String
    getLongerStringLen = IIf(Len(str1) > Len(str2), str1, str2)
End Function


//变量类型定义
Dim productName As String
Dim length As Integer
Dim reg As RegExp

到了这里,关于.NET-10. 其他-VSTO+VBA的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [.NET/WPF] 设置按钮, 以及其他任何包含边框的控件的圆角

    在 WPF 中, 按钮包含一个 “边框”, 很多时候需要设置按钮的圆角, 但是按钮并没有提供一个属性用来设置边框圆角. 下面以按钮为例, 列举几种常用的设置圆角的方式. 定义一个附加属性, 然后在各个地方就能直接方便的使用了, 下面是实际使用方式: 接下来是具体实现代码, 首

    2024年02月10日
    浏览(32)
  • 【微软技术栈】与其他.NET语言的互操作性 (C++/CLI)

    使用 C# 索引器 实现 C# 的 is 和 as 实现 C# 的 lock 本节中的主题介绍如何在 Visual C++ 中创建程序集,这些程序集使用或提供以 C# 或 Visual Basic 编写的程序集的功能。 Visual C++ 不包含索引器;它具有索引属性。 若要使用 C# 索引器,请访问索引器,就像它是索引属性

    2024年02月03日
    浏览(49)
  • ASP.NET WebForm中在TextBox输入框回车时会触发其他事件,如何处理?

    在ASP.NET WebForm中,在页面中按键盘上的回车键,会自动触发某些事件,但是这并不是我们想要的效果,我们可以设置将其取消,那如何处理呢? 前台代码:   后台在Page_Load中设置代码:  代码示例:     在ASP.NET WebForm中,在页面中按键盘上的回车键,需要自定义设置触发某

    2024年02月15日
    浏览(27)
  • 每个.NET开发都应该知道的10个.NET库

    有个.NET面试官反馈面试了一个小白,问他用过哪些.NET库,结果只回答上了几个。作为一个.NET开发者,了解一些常用的.NET库是非常重要的。本文将介绍.NET开发人员应该了解的10个常用.NET库,这些库可以帮助开发人员提高开发效率、简化开发流程,开发出优秀的.NET应用程序。

    2024年02月06日
    浏览(29)
  • 各个 .NET 平台的 UI 框架比较

    目前, Uno Platform 为得分最高者, 但如果您愿意等待 MAUI 正式发布(2022年第二季度)并完善(3-4年),MAUI 可能是更好的选择。MAUI 可能可以通过 Uno Platform 支持 Windows 7。 ℹ️文档末尾有 Uno Platform 和 MAUI 的比较。 支持移动平台+1分,支持 WebAssembly +1分,仍然开发活跃 +1 分

    2024年02月06日
    浏览(22)
  • .NET MAUI 安卓 UI 资源设置

    本文主要介绍使用 MAUI 开发安卓应用时,如何更换和处理 UI 资源:应用名称,图标,主题配色,状态栏,闪屏。 平常比较喜欢看小说,但是不知道从何时起,已经找不到一个纯粹的本地小说阅读器了。也能理解,毕竟不能只靠爱心发电,在线资源也就算了,我本地的 TXT 你也

    2024年02月10日
    浏览(28)
  • 跨平台.NET应用UI组件DevExpress XAF v22.2亮点 - 支持.NET 7

    DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。DevExpress XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 在新版中增强了 DevExpress XAF 的Blazor、Web API Service的功能

    2024年02月09日
    浏览(62)
  • abp.net 5.0 部署IIS10

    今天遇到了abp.net 5.0部署iis10被卡住的问题,网上找了一些资料,都不是我要的,最后我总结一下 我用的是 5.0的版本,所以我需要给服务器安装 iis5.0的相关运行环境 1: https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-5.0.100-preview.8-windows-x64-installer https://dotnet.microsoft.com/zh-

    2024年02月07日
    浏览(29)
  • 如何彻底解决Windons10系统无法安装.NET Framework 3.5(包括.NET 2.0和3.0)问题

    .net framework是微软的开发程序的框架, 用.net开发的程序就需要.net的环境来支持才能运行 。打个比方linux的应用程序只能在linux的环境下才能使用。 一般来说,电脑系统是自带.NET Framework功能的,如下图所示: 但同样有些系统上图中的.NET Framework功能就没有被选中,这样会导致

    2024年02月07日
    浏览(28)
  • 【ASP.NET MVC】使用动软(二)(10)

    按前文添加动态到工程 双击动软 完成新建数据库服务器后 ,需要关闭重新打开 选择简单三层,注意保存位置 注意切换数据库: 生成后拷贝五个文件夹到工程目录 注意目录结构: 添加四个项目到原来的工程: 右键项目-》添加-》现有的项目,一个个添加到工程: 添加引用

    2024年02月14日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包