ExcelVBA教科書-1(古川順平)

书: https://pan.baidu.com/s/15VfTw9eJ2MoiHktwswP0gw?pwd=tq5x
笔记如下:

一、VBA基础

  1. “VBA(Visual Basic for Applications)是Excel的自动化语言,通过Alt+F11打开编辑器,F5运行代码。”
  2. “宏录制器(開発タブ→マクロ記録)可生成基础代码,但需手动优化去除冗余操作。”

二、对象模型

  1. “Excel对象层级:Application → Workbook → Worksheet → Range,操作时需逐层指定(如Worksheets("Sheet1").Range("A1"))。”
  2. **“With语句简化重复对象引用:vbaWith Worksheets(“Sheet1”) .Range(“A1”).Value = 100 .Range(“A2”).Font.Bold = True End With “`”**

三、单元格操作

  1. **“Range引用方式:
    • Range("A1"):直接地址;
    • Cells(1, 1):行列号;
    • Range("A1:B2"):多单元格。”**
  2. Value属性读写数据,Formula属性设置公式(如.Formula = "=SUM(B1:B10)")。”

四、流程控制

  1. **“循环结构:
    • For i = 1 To 10:固定次数;
    • For Each cell In Range("A1:A10"):遍历集合;
    • Do While...Loop:条件循环。”**
  2. If...Then...ElseIf...End If分支结构,支持嵌套判断。”

五、事件处理

  1. **“工作表事件:
    • Worksheet_Change(ByVal Target As Range):单元格变更时触发;
    • Worksheet_SelectionChange:选中区域变化时触发。”**
  2. **“工作簿事件:
    • Workbook_Open:文件打开时执行;
    • Workbook_BeforeClose:关闭前保存提示。”**

六、用户交互

  1. InputBox获取用户输入,MsgBox显示提示信息(可定制按钮与图标)。”
  2. “用户窗体(UserForm)设计GUI:拖拽控件(如文本框、按钮)并绑定事件。”

七、数据处理

  1. **“数组快速读写:vbaDim arr() As Variant arr = Range(“A1:D10”).Value ‘ 读取到数组 Range(“F1:I10”).Value = arr ‘ 写入到单元格 “`”**
  2. **“字典对象(Scripting.Dictionary)去重与计数:vbaDim dict As Object Set dict = CreateObject(“Scripting.Dictionary”) dict.Add Key, Value ‘ 自动处理重复Key “`”**

八、效率优化

  1. **“关闭屏幕更新提速:vbaApplication.ScreenUpdating = False ‘ 开始 ‘…代码操作… Application.ScreenUpdating = True ‘ 恢复 “`”**
  2. **“禁用自动计算:vbaApplication.Calculation = xlCalculationManual ‘ 手动模式 ‘…代码操作… Application.Calculate ‘ 手动触发计算 “`”**

九、错误处理

  1. On Error Resume Next忽略错误继续执行,On Error GoTo ErrorHandler跳转至错误处理段。”
  2. **“调试技巧:
    • F8逐行执行;
    • Debug.Print输出到立即窗口;
    • 断点(F9)暂停检查变量。”**

十、实战建议

  1. “模块化编程:将功能拆分为多个SubFunctionPublic声明全局变量。”
  2. **“代码注释规范:
    • 单行注释:' 説明
    • 区块注释:Rem 処理概要...。”**

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注