VBA: convierte centímetros, pulgadas y píxeles en puntos
Es frustrante que Excel, PowerPoint y Word funcionen de forma nativa utilizando una medida conocida como puntos. Sin embargo, las medidas dentro de los menús de la aplicación estándar se establecen en centímetros o pulgadas. Esto se puede ver al configurar la posición y el tamaño de una forma en PowerPoint a través de los menús estándar.
Sin embargo, cuando se utiliza una macro para recuperar la posición de esa misma forma, muestra el valor en puntos.
A continuación se muestra el código VBA de PowerPoint para mostrar las dimensiones de la forma activa:
Sub getShapeSizes()Dim msgText As StringmsgText = "Arriba: " ActiveWindow.Selection.ShapeRange.Top vbNewLinemsgText = msgText "Izquierda: " ActiveWindow.Selection.ShapeRange.Left vbNewLinemsgText = msgText "Altura: " ActiveWindow.Selection.ShapeRange.Height vbNewLinemsgText = msgText "Ancho: " ActiveWindow.Selection.ShapeRange.Width vbNewLineMsgBox msgTextEnd Sub
Si las medidas mostradas están en centímetros o pulgadas se establece a través del Panel de control de PowerPoint. Para Excel, el valor predeterminado también se establece a través del Panel de control, pero se puede cambiar para que no sea predeterminado dentro de las opciones de Excel. Archivo – Opciones – Avanzado – Pantalla – Unidades de regla.
Convertir de pulgadas o centímetros a puntos
Convertir de pulgadas o centímetros a puntos es razonablemente sencillo, ya que hay 72 puntos por pulgada o 28,35 puntos por centímetro (redondeado a 2 decimales). Microsoft ha proporcionado dos funciones VBA útiles para realizar esta conversión
Convertir de Pulgadas a Puntos
Valor tenuePulgadas como puntos de valor DoubleDim como pulgadasValor doble = 25Puntosvalor = Aplicación.PulgadasApuntos(valorPulgadas)Depuración.Imprimir puntosValor
Convertir de Centímetros a Puntos
Dim valueCentimeters como DoubleDim valuePoints como DoublevalueCentimeters = 25valuePoints = Application.CentimetersToPoints(valueCentimeters)Debug.Print valuePoints
Convertir de Puntos a Centímetros
Dim valuePoints como DoubleDim valueCentimeters como DoublevaluePoints = 50valueCentimeters = valuePoints / Application.CentimetersToPoints(1)Debug.Print valueCentimeters
Convertir de Puntos a Pulgadas
Valor de atenuaciónPuntos como valor de DoubleDimPulgadas como puntos de valor doble = 700valorPulgadas = valorPuntos / Aplicación.PulgadasAPuntos(1)Depuración.Imprimir valorPulgadas
Convertir de puntos a píxeles
¿Qué pasa con los píxeles? Si bien los píxeles pueden parecer una unidad de medida comprensible para controlar la posición de los objetos, no es tan útil como cabría esperar.
La cantidad de píxeles dependerá de una variedad de factores, como la resolución de pantalla utilizada para cada monitor. Sin embargo, si está desesperado por convertir puntos en píxeles, podría utilizar el siguiente código VBA.
Dim valuePoints As LongDim valuePixels As LongvaluePoints = 500valuePixels = Application.ActiveWindow.PointsToScreenPixelsX(valuePoints)Debug.Print "Píxeles del eje X: " valuePixelsvaluePixels = Application.ActiveWindow.PointsToScreenPixelsY(valuePoints)Debug.Print "Píxeles del eje Y: " valuePixels
Deja una respuesta