首页 > 解决方案 > 在 Excel 中创建由 CTRL+ 和 CTRL- 映射的放大和缩小循环函数

问题描述

我很难正确指定代码。我想在 Excel 中按CTRL++并每次将缩放增加 5%;CTRL+反之亦然-

我尝试将缩放功能映射到该Application.onkey功能,但没有成功。当映射到实际字母时,这更加直接。我也不确定如何创建循环效果。

Sub Zoom()
    Application.Onkey "^{=}", "ZoomIn"
End Sub

Sub ZoomIn()
    ActiveWindow.View.Zoom.Percentage = 105
End Sub

宏运行但没有产生预期的效果;实际上并没有做任何事情。

标签: excelvba

解决方案


怎么样:没有测试只是acc。MS Docs 使用 debug.print 来确定击键是否被触发可能是一个想法 - 即使没有任何反应,您也可以看到键定义正在工作。当然,您也可以按 F5 调用 zoomin 以查看缩放是否有效。这可能会简化跟踪您的问题。

在您的应用程序中的某个位置至少被调用一次:

  sub keymap
    Application.OnKey "^{+}", "zoomin" 
    Application.OnKey "^{-}", "zoomout" 
    Application.OnKey "^{=}", "zoomreset"
  end sub

  Sub zoomin() 
   debug.print "in"
   current = ActiveWindow.View.Zoom.Percentage
   ActiveWindow.View.Zoom.Percentage = current+5
  End Sub

  Sub zoomout()
  debug.print "out"
   current = ActiveWindow.View.Zoom.Percentage
   ActiveWindow.View.Zoom.Percentage =  current-5
  End Sub

  Sub zoomreset()
   debug.print "default"
   ActiveWindow.View.Zoom.Percentage =  100
  End Sub

推荐阅读