Excel 编程实例

本例使用的程序:Microsoft Excel 2010

本例实现的功能:发送*IDN?命令,读取设备信息。

  1. 新建一个启用宏的Excel文件,本例中命名为Demo_Excel.xlsm。

  2. 运行Demo_Excel.xlsm文件,单击Excel文件左上角的文件 > 选项,打开如下图所示界面。在左侧点击“自定义功能区”,勾选“开发工具”,点击确定。此时,Excel的菜单栏将显示“开发工具”菜单。



  3. 在Excel的一个单元格中填入设备资源描述符,例如设备资源描述符为USB0::0x1AB1::0x0600::DG7F910400000::INSTR,将其填入SHEET1.CELLS(1,2)(即Sheet1的B1单元格)中。单击“开发工具”菜单选择Visual Basic选项,打开Microsoft Visual Basic。

  4. 在Visual Basic页面的菜单栏选择“工具(T)”单击“引用(R)”。

    在弹出的对话框中选中VISA Library,单击确定按钮即可引用VISA Library。



    如果您在上图左侧的列表中无法找到VISA Library,请按照如下方法查找:

    1. 请确保您的计算机已经安装NI-VISA库。

    2. 点击右侧的“浏览(B)…”进行查找,查找范围为C:\WINDOWS\system32,文件名为visa32.dll,如下图所示。



  5. 在“开发工具”菜单下点击“查看代码”,进入Microsoft Visual Basic页面,添加如下代码并保存。
    提示: 若第1步新建的Excel文件不是启用宏的文件,此时,将弹出“无法在未启用宏的工作薄中保存以下功能”的提示消息,此时,请根据提示将工作薄保存为启用宏的文件(文件后缀名变成.xlsm)即可。
    Sub QueryIdn()
    
        Dim viDefRm As Long
        Dim viDevice As Long
        Dim viErr As Long    
        Dim cmdStr As String
        Dim idnStr As String * 128
        Dim ret As Long
    
        ‘打开设备,设备资源描述符在SHEET1的CELLS(1,2)中’
        viErr = visa.viOpenDefaultRM(viDefRm) 
        viErr = visa.viOpen(viDefRm, Sheet1.Cells(1, 2), 0, 5000, viDevice)
        
       ‘发送请求,读取数据,返回值在SHEET1的CELLS(2,2)中’
        cmdStr = "*IDN?"
        viErr = visa.viWrite(viDevice, cmdStr, Len(cmdStr), ret)    
        viErr = visa.viRead(viDevice, idnStr, 128, ret)    
        Sheet1.Cells(2, 2) = idnStr
        
       ‘关闭设备’
        visa.viClose (viDevice)
        visa.viClose (viDefRm)
    
    End Sub
    
  6. 添加按钮控件:在“开发工具”菜单下点击“插入”,在“表单控件”选择按钮后放在Excel单元格中。此时,弹出“指定宏”界面,选中“Sheet1.QueryIdn”,单击“确定”即可。





    按钮默认的名称为“按钮1”。右击按钮,在弹出的菜单中先选择“编辑文字(X)”,将按钮名称改为“*IDN?”。

  7. 点击“*IDN?”按钮,即发送请求,读取数据,返回值在SHEET1的CELLS (2,2) 中。