7、菜单操作,全部菜单记录,隐藏或使其失效操作等,里面有一个数组方法一个非数组方法,速度却截然不同
5yPp2qMG.rar
(10.38 KB, 下载次数: 545)
Sub hjs_数组() '用数组方法处理,速度比直接处理快很多哦 Dim a As CommandBarControls Dim b As CommandBarControl Dim buf(), i% Dim Itime Application.ScreenUpdating = False Itime = Timer '记录程序运行当前的时间 Cells.ClearContents '删除工作表内容(不包括格式) i = 2 Set a = Application.CommandBars.FindControls '设置一个菜单集合 ReDim buf(1 To a.Count + 1, 1 To 4) '重新定义数组,使其大小与集合的总记录数一致 buf(1, 1) = "ID" buf(1, 2) = "Caption" buf(1, 3) = "Tag" buf(1, 4) = "Index" '设置标题 For Each b In a buf(i, 1) = b.ID buf(i, 2) = b.Caption buf(i, 3) = b.Tag buf(i, 4) = b.Index '在菜单集合里循环,给数组赋值 i = i + 1 Next [A1].Resize(UBound(buf), 4).Value = buf '根据数组给单元格赋值,单元格范围必须完全与数组大小一样 Application.ScreenUpdating = True MsgBox "Done!共" & Format(Timer - Itime, "0.00") & "秒" '显示程序运行的总时间,格式为“0.00” End Sub Sub hjs1() '使某菜单失效 Dim i As CommandBarControl For Each i In Application.CommandBars.FindControls If i.ID = "30002" Then '在工作表中找到其对应的Id,如30002表示“文件” 'i.Visible = False i.Enabled = False '要恢复只需设置为true即可 Exit For End If Next End Sub ------------------------------- 既然是接龙,就希望大家也来粘贴自己的代码,并注释,而不是我一个这样做,还有,我复制注释后的代码在页面上,不知好不好,因为它比较占地方哦?
[此贴子已经被plxmm于2006-7-28 18:30:36编辑过] |