2009-07-21 21 views
5

¿Dónde puedo encontrar un completo lista de cambios en VBA de Excel XP (2002) a Excel 2007? Tengo un libro de trabajo que depende en gran medida de VBA en el que he estado trabajando en 2002, y cuando lo abrí en 2007, noté que algunas cosas habían cambiado. Por ejemplo, mi libro de trabajo hace muchas rotaciones en 3D; Descubrí que Shape.ThreeD.RotationX se ha convertido en Shape.ThreeD.RotationY y viceversa. También he descubierto que tengo que negar los valores de rotación, de modo queVBA cambia Excel 2002 -> Excel 2007

Shape.ThreeD.RotationX = 90 

convierte

Shape.ThreeD.RotationY = -90 

Estoy seguro de que hay otros cambios, así, que probablemente habría perdido. No he visto los cambios anteriores detallados en ninguna parte, por lo que me gustaría saber:

¿Qué sitios detallan cambios como los que he descrito anteriormente?

+1

Si alguien hubiera publicado una lista "completa" de lo que hizo VBA en Excel XP en primer lugar ,. Podríamos comparar y contrastar con las otras listas incompletas de VBA en Excel 2007. – JeffO

+0

Miedo de no conocer la respuesta a su pregunta, pero en mi experiencia limitada, la funcionalidad de Excel VBA es MUY irregular en 2007 en comparación con las versiones anteriores. Algunas cosas que simplemente no puede hacer, incluso si graba una macro y la reproduce. – Benjol

Respuesta

4
  1. Abra Excel 2007 y entrar en el editor de VBA (Alt + F11)
  2. Abre Ayuda (F1)
  3. Haga clic Novedades
  4. Haga clic objeto cambia de modelo, ya que Microsoft Office XP (2002)

Voila!

Esta lista es bastante completa, así como interactiva, por lo que no voy a reproducirla aquí. Pero también tiene cambios desde las versiones 97, 2000 y 2003.

+0

He visto esa lista en MSDN, pero no está completa. No enumera los cambios que se describen en la pregunta, por lo que no puedo estar seguro de que enumere todos los otros cambios. –

0

Éstos son algunos de los cambios que he notado hasta ahora:

Shape.ThreeD.RotationX = 90 

se ha convertido en

Shape.ThreeD.RotationY = -90 

(eje es decir, X e Y se han intercambiado alrededor por rotación 3d en autoshapes, y las direcciones positiva/negativa a lo largo de estos ejes son al revés).

Excel ya no parece cumplir con la directiva

Shape.ThreeD.ExtrusionColorType = msoExtrusionColorAutomatic 

(sólo se da una extrusión negro, al menos en mis pruebas).

Las formas ThreeD ahora deben tener su dirección de iluminación configurada explícitamente, p.

Shape.ThreeD.PresetLightingDirection = msoLightingRight 

mientras que anteriormente esto no parecía ser necesario.

Estas son solo algunas de las cosas que he descubierto hasta ahora. Estoy seguro de que hay muchas más: las agregaré a medida que las encuentre (intentaré poner las cosas relacionadas con las formas automáticas en esta respuesta, y agruparé otros cambios/problemas en respuestas separadas para que sea más fácil navegar).

Si tiene código que hace uso de

Application.ScreenUpdating = False 

para acelerar a sí misma, hay que llamar explícitamente

Application.ScreenUpdating = True 

antes de mostrar un MsgBox o InputBox si quieres cambia para mostrar en la pantalla (Mientras que 2002 sería siempre actualice la pantalla antes de mostrar cualquier cuadro de diálogo).

0

En mi experiencia, puede intentar hacer cambios basados ​​en una lista "Exhaustiva" incompleta, pero aún debe probar el código y ver qué no funciona de la manera esperada. Después de realizar cambios para que funcione en 2007, también debe probar en la versión original, por lo que todavía funciona para esos usuarios.

Cuestiones relacionadas