Pregunta

De vez en cuando, me va a suceder a través de una hoja de cálculo, que sufre de botones mágicos o cuadros de lista, que se hacen más grandes o más pequeños con el tiempo.

No hay nada en el código está instruyendo a esto.

¿Alguien más ha experimentado esta alegría?

¿Fue útil?

Solución

El problema parece estar relacionado con la forma en que Windows maneja resoluciones no nativas en los monitores y se puede evitar de varias maneras:

El problema puede ser una pesadilla completa cuando sucede, pero sólo ocurre de forma intermitente.

Hemos estado probando recientemente una hoja de cálculo Excel utilizado por una docena de personas y han desarrollado una buena idea de la causa y algunos arreglos posibles.

La causa parece estar relacionado con cualquier configuración en la que las pantallas se utilizan en algo más que su resolución nativa. Esto puede suceder fácilmente si un usuario se conecta un monitor externo a un ordenador portátil y no elige la configuración de pantalla resultante con cuidado. Por ejemplo, si un ordenador portátil está conectado a un proyector (tal vez un viejo con una nativa de 1024 x 768), pero el portátil es un 1.280 por 800 y que escoge el usuario a duplicado la pantalla en lugar de < strong> extiende it (configuración en "Conectar a un proyector" o panel de control "muestra" en Windows 7), el resultado es una imagen impredecible y generalmente insatisfactoria en ambas pantallas con ambos en resoluciones no nativas. Hemos encontrado que estos ajustes casi siempre causa serios problemas con Excel botones, especialmente los controles ActiveX. A veces, en los clics repetidos, que se reducen a la ilegibilidad; otras veces se expanden para cubrir toda la pantalla.

Sobre todo, cuando nos indique a los usuarios a utilizar el extender configuración de pantalla y el resultado es dos pantallas a la vez utilizando resoluciones nativas, no vemos el problema.

También hay formas basadas en código para minimizar el problema. Hemos intentado reajustar la ubicación y el tamaño de los botones y controles cuando se ha hecho clic (que añade una gran cantidad de código tedioso si usted tiene un montón de botones). Esto a veces funcionaba. También tratamos de cambiar la propiedad de tamaño automático de verdadero a falso y la espalda (esto funciona de forma manual en el modo de desarrollador) y esto soluciona más casos, pero al parecer no todos.

Otros consejos

encontró la causa a ser personas de apertura el spreasheet en una máquina accede a través de escritorio remoto, y la existencia de una diferencia en la resolución de la pantalla entre las máquinas locales y remotas. Esto afecta a los controles disponibles en la caja de herramientas de control, pero todavía experimenta el problema usando un viejo botón de control de formularios de la escuela, por lo que mi respuesta insatisfactoria es usar eso.

Esto me ha estado plagando durante años, dentro y fuera. Hay una serie de correcciones de alrededor, pero parece inconsistente. Todavía se estaba produciendo en Excel 2010 (pasando a mí de mayo de 2014), y aún así está ocurriendo en Excel 2013 por algunos informes. La mejor descripción que he encontrado que coincide con mi situación al menos (Excel 2010, sin RDP involucrados, sin Vista preliminar involucrado) está aquí:

Blog Microsoft Excel Equipo de apoyo: los controles ActiveX y tamaño de formulario a sí mismos cuando se hace clic o hacer una vista preliminar (en Excel 2010)

(Esta podría no ser útil para los usuarios de Excel 2013 lo siento)

EDIT: Adición de detalle en el caso de enlace TechNet nunca se agota, el artículo de TechNet dice:

PRIMERO instalar Microsoft Hotfix 2598144 para Excel 2010 , disponible: aquí .

En segundo lugar, si el síntoma es "botón de un ActiveX cambios en el tamaño incorrecto después de hacer clic en una hoja de cálculo Excel 2010", a continuación, usted debe:

  • Haga clic en Inicio y en Ejecutar, escriba regedit en el cuadro Abrir y, a continuación, haga clic en Aceptar.
  • Busque y seleccione la siguiente subclave del Registro HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 14.0 \ Excel \ Options
  • En el menú Edición, seleccione nuevo y, a continuación, haga clic en Valor DWORD (32 bits).
  • Tipo LegacyAnchorResize, y luego pulse Intro.
  • En el panel de detalles, haga clic con el botón LegacyAnchorResize y, a continuación, haga clic en Modificar.
  • En el cuadro Información del valor, escriba 1 y, a continuación, haga clic en Aceptar.
  • Salir del Editor del registro.

O en segundo lugar, si el síntoma es "Un control de forma del botón se muestra incorrectamente en un libro después de ver la vista preliminar del libro en Excel 2010", a continuación, usted debe:

  • Haga clic en Inicio y en Ejecutar, escriba regedit en el cuadro Abrir y, a continuación, haga clic en Aceptar.
  • Busque y seleccione la siguiente subclave del Registro: HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 14.0 \ Excel \ Options
  • En el menú Edición, seleccione nuevo y, a continuación, haga clic en Valor DWORD (32 bits).
  • Tipo MultiSheetPrint, y luego pulse Intro.
  • En el panel de detalles, haga clic con el botón MultiSheetPrint y, a continuación, haga clic en Modificar.
  • En el cuadro Información del valor, escriba 1 y, a continuación, haga clic en Aceptar.
  • Seleccione la siguiente subclave del registro de nuevo: HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 14.0 \ Excel \ Options
  • En el menú Edición, seleccione nuevo y, a continuación, haga clic en Valor DWORD (32 bits).
  • Tipo LegacyAnchorResize, y luego pulse Intro.
  • En el panel de detalles, haga clic con el botón LegacyAnchorResize y, a continuación, haga clic en Modificar.
  • En el cuadro Información del valor, escriba 1 y, a continuación, haga clic en Aceptar.
  • Salir del Editor del registro.

O en segundo lugar, si el síntoma es "botón ActiveX se cambia a un tamaño incorrecto en un 2,010 hoja de cálculo de Excel después de ver la vista previa de impresión de la hoja de trabajo", a continuación, usted debe:

  • Haga clic en Inicio y en Ejecutar, escriba regedit en el cuadro Abrir y, a continuación, haga clic en Aceptar.
  • Busque y seleccione la siguiente subclave del Registro: HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 14.0 \ Excel \ Options
  • En el menú Edición, seleccione nuevo y, a continuación, haga clic en Valor DWORD (32 bits).
  • Tipo LegacyAnchorResize, y luego pulse Intro.
  • En el panel de detalles, haga clic con el botón LegacyAnchorResize y, a continuación, haga clic en Modificar.
  • En el cuadro Información del valor, escriba 1 y, a continuación, haga clic en Aceptar.
  • Salir del Editor del registro.

Buena suerte. Este problema es un dolor ...

Este problema es, de hecho, debido a la resolución de la pantalla. Más comúnmente se produce cuando se conecta el usuario a un proyector, o WebEx durante el uso de la aplicación Excel.

Una solución sencilla a este problema es para pedir al usuario que reinicie su máquina sin ninguna conexión periféricos (proyector) y abra la aplicación Excel de nuevo.

Las correcciones descritas anteriormente, el cambio de tamaño mediante programación / reposicionamiento de los controles Active X después de eventos de clic, o modificar el registro (con la palabra D LegacyAnchorResize), no resolvió el problema para mí con Excel 2010 / Windows 7 64 bits.

Se encontró que la solución para mí aquí: https://support.microsoft.com/ en-us / kb / 838006

Para Excel 2010, los instruye enlace a:

  1. Cierre todos los programas que se ejecutan.
  2. Haga clic en Inicio y en Ejecutar, en el cuadro Abrir, escriba regedit y, a continuación, haga clic en Aceptar.
  3. Busque y, a continuación, haga clic en la siguiente clave del registro:
  4. HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 14.0 \ Common
  5. En el menú Edición, seleccione nuevo y, a continuación, haga clic en clave.
  6. Tipo Draw, y luego pulse Intro.
  7. En el menú Edición, seleccione nuevo y, a continuación, haga clic en valor DWORD.
  8. Tipo UpdateDeviceInfoForEmf, y luego pulse Intro
  9. Haga clic UpdateDeviceInfoForEmf y, a continuación, haga clic en Modificar. 10.In el cuadro Información del valor, escriba 1 y, a continuación, haga clic en Aceptar.
  10. En el menú Archivo, haga clic en Salir para cerrar el Editor del registro.

¿Es posible que el botón se define a pegarse a las esquinas de una célula, en lugar de flotar libremente?

Comprobar con

Formato | propiedades | Objeto de posicionamiento

y elija otra cosa que "se mueven y tamaño con celdas"

todo parece estar fijado en resoluciones nativas, lo que profundiza el misterio Mis monitores. Sin embargo, he encontrado que hacer algo al botón (mover o redimensionar) de alguna manera se soluciona el problema. Esta rutina automatiza el movimiento y, a continuación, restaura la configuración original.

El siguiente código parece abordar el problema, al menos para los botones.

Public Sub StablizeButton(oButton As MSForms.CommandButton)

    With oButton

        ' If True, then temporary distortion is remedied only by clicking somewhere.
        ' If False, then the temporary distortion is remedied merely by moving the mouse pointer away.
        .TakeFocusOnClick = False
        ' For best results:  In the Properties Sheet, initialize to False.

        .Left = .Left + 200             ' Move the button 200 units to the right, ...
        .Left = .Left - 200             ' ... and then move it back.

    End With

End Sub

Invoke es como sigue:

Private Sub MyButton_Click()
    StablizeButton MyButton

    ' Remainder of code.
End Sub

he tenido este problema un par de veces y para resolver hice lo siguiente:

  1. Buscar a través de mi unidad C: \ para cualquier archivo con la extensión '.exd'
  2. Eliminar los archivos (que está bien hacerlo)
  3. Implementar código que modifica el tamaño los objetos de ActiveX cada vez que se abre la hoja

He encontrado este problema se debía a todo lo conectamos al ordenador portátil en un proyector y guarda el archivo. A continuación, cada vez que el tema surgió Fui pasos 1. y 2. y mis objetos ActiveX de nuevo se comportaban simplemente repetía

Nos acabamos de resolver esto a nivel de empresa, añadiendo la siguiente módulo para todos los libros habilitados para macros:

Option Explicit

Type ButtonSizeType
    topPosition As Single
    leftPosition As Single
    height As Single
    width As Single
End Type

Public myButton As ButtonSizeType

Sub GetButtonSize(cb As MSForms.CommandButton)
' Save original button size to solve windows bug that changes the button size to
' adjust to screen resolution, when not in native resolution mode of screen
    myButton.topPosition = cb.top
    myButton.leftPosition = cb.Left
    myButton.height = cb.height
    myButton.width = cb.width
End Sub

Sub SetButtonSize(cb As MSForms.CommandButton)
' Restore original button size to solve windows bug that changes the button size to
' adjust to screen resolution, when not in native resolution mode of screen
    cb.top = myButton.topPosition
    cb.Left = myButton.leftPosition
    cb.height = myButton.height
    cb.width = myButton.width
End Sub

Sólo tiene que llamar ellos en el comienzo y el final de su código como el siguiente:

Private Sub CommandButton1_Click()

Application.ScreenUpdating = False
' Turn off ScreenUpdating to make sure the user dosn't see the buttons flicker
GetButtonSize CommandButton1 ' Saves original button size
' Do cool things
'
'
'
SetButtonSize CommandButton1 ' Restores original button size

Application.ScreenUpdating = True
' Turn ScreenUpdating back on when you're done
End Sub

hilo viejo, pero yo estaba teniendo este problema y lo resolvió por primera agrupación de la, en mi caso, botones de opción de juntas que estaban teniendo el problema, entonces, simplemente definiendo (restablecer) el tamaño de este grupo en un Auto_abrir como tal:

With ThisWorkbook
    .Worksheets("1").Shapes("grpInput").Width = 383.1
    .Worksheets("2").Shapes("grpSuite").Width = 383.1
    .Worksheets("3").Shapes("grpLoc").Width = 383.1
    .Worksheets("4").Shapes("grpDecision").Width = 383.1
End With

[EXCEL PROFESIONAL PLUS 2016, de 32 bits, VERSION 1802, BUILD 9029,2167]

Yo estaba teniendo el mismo problema y Podría resolver el problema mediante la personalización de la escala de la pantalla en Windows 10, 64 bits. Es extremadamente simple y funciona para un solo usuario. Sólo tiene que seguir las siguientes instrucciones y usted tendrá todos los controles de formulario, formas de hojas, figuras y controles ActiveX de nuevo a su tamaño original. No hay necesidad de codificación o haciendo trucos avanzados / magia / hacks. Si el enlace que se rompe, sólo tiene que repetir estos pasos.

  1. Para grupo de presentación Graduación personalizada en Windows 10, que tiene que hacer lo siguiente.

    Configuración abiertas.

  2. Vaya a Configuración -. Pantalla
  3. A la izquierda, haga clic en el enlace Escala personalizada en "Escala y Diseño".
  4. Se abrirá la página de diseño personalizado. Especifique un nuevo valor para escalar por ciento. [USE 100] !! ... y voilá. Cierre y vuelva a abrir Excel.

Es un antiguo puesto, pero espero que ayuda a cualquier persona que se ocupa de este problema molesto y haciendo hincapié en Excel.

https://winaero.com/blog/set- display-custom-escalamiento-windows-10 /

Este problema es muy frustrante, mi experiencia es que las propiedades generalmente se fijan correctamente en los objetos de ActiveX. He modificado un archivo UDF desde arriba para simplemente ser capaz de funcionar en cualquier hoja activa, esto hará que todo vuelva a ser como era antes de encoger.

Public Sub ResizeAllOfIt()
Dim myCtrl As OLEObject

For Each myCtrl In ActiveSheet.OLEObjects

 Dim originalHeight
 Dim originalWidth

 originalWidth = myCtrl.width
 originalHeight = myCtrl.height

  myCtrl.height = originalHeight - 1 
  myCtrl.height = originalHeight 
  myCtrl.width = originalWidth

Next myCtrl

End Sub

me encuentro con este problema todo el tiempo en Excel 2010 (que siempre me lleva de nuevo a este hilo) y, aunque no he encontrado una solución 100%, creo que tengo alguna información que pueda ayudar a otros.

Mientras tediosamente jugar con los botones que descubrió que los eventos diferentes para cada objeto estaban causando problemas diferentes. Por ejemplo,

  • Botón A - El tamaño del botón se contraería en el evento MouseDown
  • Botón B - El texto podría ampliar en el evento MouseMove (Pero sólo después de que se ha hecho clic en el botón AKA, hago clic en un botón, ejecuta el código, deje el pasar el mouse sobre el botón, y luego, tan pronto como muevo el ratón. el texto sería ampliar)
  • Texto Un cuadro de entrada - El texto se ampliaría en el evento MouseUp
  • cuadro de entrada de texto B - El texto se ampliaría en el evento LostFocus

La única solución que funciona para mí es escribir código para restablecer el tamaño / texto para cada caso objeto que estaba causando el cambio de tamaño aleatorio. Al igual que ...

¿Dónde MaterialNum es el nombre de la caja de entrada, y es el evento MouseDown ...

Private Sub MaterialNum_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    ' Reset the size, font style, and size
    With Worksheets("QuoteForm").Shapes("MaterialNum")
        .Height = 21
        .Width = 101.25
        .Left = 972.75
        .Top = 87
        With .DrawingObject.Object.Font
            .Name = "Arial"
            .Size = 12
        End With
    End With

End Sub

Además, he tenido que cambiar algunas opciones en Formato de control (clic derecho object> Formato de control):

  • ficha Tamaño: Bloqueo cuadro de relación de aspecto se comprueba
  • pestaña Propiedades: cuadro Imprimir objeto no está marcada

Además, en el panel Propiedades del objeto (clic derecho objeto> Propiedades) que establece TakeFocusOnClick en false

Sí, esto es lento y tedioso, ya que tiene que ser hecho con cada objeto, pero es la única solución que funciona para mí (y parece ser una solución más rápido que esperar para Microsoft para solucionar este problema! !!) . Es de esperar que ayuda a los demás.

Espero que otros ha resultado útil

Me di cuenta de que ninguna de estas respuestas anclar el control de una fila y columna específica. Esto ha funcionado bastante limpia para mí como filas / columnas tienden a ser más predecible que la resolución de los monitores.

Las siguientes muestras básicamente "medidas" en el que el objeto debe ir, a continuación, establece que existe en el código Worksheet_Activate. En el siguiente ejemplo, el botón siempre se ajustará a cubrir D8:F10.

Private Sub Worksheet_Activate()
'Note this is done in the sheet code, not a Module.

   With Me.Shapes("CommandButton1")

       .Left = Me.Range("A1:C1").Width
       .Top = Me.Range("a1:a7").Height
       .Width = Me.Range("D1:F1").Width
       .Height = Me.Range("A8:a10").Height

   End With

End Sub

aparecerá el resultado como se muestra a continuación:

introducir descripción de la imagen aquí

Es muy raro. Las propiedades de ancho y alto no se contraen cuando se les pregunta (ya sea en clave o el uso de la hoja de propiedades), pero parece que sí cambian.

I dio cuenta de que si uso la hoja de propiedades y cambiar el ancho de la norma 15 a, digamos, 14 y luego de vuelta a 15, que lo fija.

El siguiente código funciona para mí (y tiene un efecto visual divertida en la hoja: se hace clic, se encoge, parpadea la pantalla, y se expande hacia atrás).

Mi solución en el código (en el evento de clic para la casilla de verificación):

Dim myCtrl As OLEObject
For Each myCtrl In ActiveSheet.OLEObjects
  myLab = myCtrl.Name
  myCtrl.Height = 14 ' to "wake up" the property.
  myCtrl.Height = 15 ' to reset it back to normal
  myCtrl.Width = 12 ' just making sure
Next myCtrl

Después de buscar en la red, las costuras de la mejor solución es salvar el archivo como .xlsb (binario) en lugar de .xlsm

Lo que empecé a hacer hace un tiempo era tener un solo sub que establece el tamaño de todos mis controles. Entonces puede ejecutar este sub desde cualquier punto en el código donde los controles crecen o se encogen. A veces es mucho trabajo meticuloso adicional, sino que guarda mis botones de comer una hoja de cálculo.

no he probado esto, pero supongo que esto tiene que ver con la propiedad de zoom (tal vez añadir activewindow.Zoom = false).

también puede hacer un bucle en formas wich define .Placement = xlMove en Workbook_Open y window_activate, esto es para evitar formas de cambiar el tamaño de las células con (pero se moverá con ellos).

Estoy utilizando Excel 2013 y nunca he tenido este problema, también yo nunca lo uso a distancia ..., tratando de ayudar con ideas pequeñas

Me podría haber encontrado una solución: " asegúrese de que todas las formas en la hoja de trabajo tienen nombres únicos " (incluyendo casillas de verificación / botones de radio (controles OLE), así como imágenes y otros tipos de formas ... )

Debido a que el problema es intermitente, no puedo garantizar esto. Tengo dos formas de trabajo ahora bien el uso de esta solución, pero "dos" es un conjunto muy pequeño de la muestra, y apenas podía ser una coincidencia. Nunca menos, estos son pasos que di:

I aparece todas las formas de la hoja de problema (wsForm) sobre una hoja en blanco (Sheet1):

Sub ListShapes()
Dim spShape As Shape
Dim intRow As Integer


Sheet1.Range("A1:F1") = Array("Name", "Left", "Top", "Width", "Height", "Bottom Right Cell")
intRow = 2

For Each spShape In wsForm.Shapes        

    Sheet1.Cells(intRow, 1).Value = spShape.Name
    Sheet1.Cells(intRow, 2).Value = spShape.Left
    Sheet1.Cells(intRow, 3).Value = spShape.Top
    Sheet1.Cells(intRow, 4).Value = spShape.Width
    Sheet1.Cells(intRow, 5).Value = spShape.Height
    Sheet1.Cells(intRow, 6).Value = spShape.BottomRightCell.Address

    intRow = intRow + 1

Next
End Sub

I después se contaron cada nombre de la forma en la columna A, utilizando una fórmula en la columna G:

= de CONTAR.SI ($ A $ 2: $ A $ 120, A2)

Obviamente rango de ajuste para adaptarse ... A continuación, puede filtro en todas las formas que no tienen un "1" en esta columna. La "célula inferior derecha" ayuda a encontrar la forma de la hoja de trabajo: cambio de nombre mediante la selección de la forma, a continuación, entrar en un nuevo valor único en el cuadro nombre / referencia en la parte superior izquierda de Excel.

Esta lista forma también ayudó a encontrar algunas formas "muertas" (0 altura o anchura) 0 que eran largas olvidados y sin uso.

Espero que esto funcione para usted! En cuanto a eso ... espero que funciona para mí para futuras ocurrencias ...

Si usted no desea mostrar el botón se mueve hacia atrás y adelante, se puede poner la colocación original en su código a continuación, sólo echa contra aquellos. Desactivar la actualización de pantalla cuando se hace clic en el botón, comprobar para ver si la colocación es diferente en el control, cambiarlo de nuevo, si es necesario, volver a su vez en la actualización de la pantalla

DP

Después de probar muchas de las soluciones sobre esto y los mensajes relacionados, he descubierto que la solución a un problema diferente que Microsoft había publicado también trabajó de manera fiable para este tema en particular cuando se aplica de una manera particular, al menos dentro del contexto estoy trabajando dentro. He experimentado estos problemas en una resolución nativa de los ordenadores portátiles que tenemos aquí y en la PC, ya que me gustaría cambiar a una resolución no nativa. A saber, botones de la carga en una más grande que su tamaño normal, cada vez más grande cuando se hace clic en, y el texto y las imágenes de estos botones encogimiento (y por lo menos el ajuste para el texto sigue siendo el mismo, así que no pude ver ninguna manera de cambiarlo de nuevo mediante programación o de otro modo.) Estos problemas no han sido intermitentes en mi caso. He tenido problemas intermitentes, aunque después de usar la vista preliminar, que Microsoft ha publicado una solución para aquí . He intentado esto y parece estar funcionando.

La solución: Para Excel, cierre la aplicación y eliminar el archivo de MSForms.exd C:\Users{UserName}\AppData\Local\Temp\Excel8.0 mientras que en la resolución que desea ver los botones en También puede buscar otros archivos .exd en su carpeta local Temp AppData \. para otras aplicaciones de Office.

Como ya he dicho, se trata de una solución propuesta por Microsoft para un tema diferente - en donde los botones dejan de funcionar después de instalar las actualizaciones de diciembre '14. Aquí está el enlace a ese artículo. En ese caso, se trata de una solución de una vez. En este caso, es posible que tenga que hacerlo cada vez que cambie resoluciones.

La agrupación de los controles parece funcionar para mí. Me upvote o comentario, pero lo que no me deja. Tenga en cuenta que este problema surge a menudo si se utiliza la escala de presentación W8 y tienen un ordenador portátil y el monitor de alta resolución mayor.

he encontrado este problema en todos los objetos (botones, cuadros de texto, etc.). Al imprimir / vista previa de impresión de varias hojas, todas las hojas excepto el primero en la secuencia han movido o cambiado el tamaño de los objetos. Después de muchas pruebas, la solución más sencilla a la página de zoom hacia arriba o hacia abajo y el retorno a la configuración original.

Yo tenía el problema también con cuadros de lista ActiveX y encontró lo siguiente en otro lugar y parece que funciona hasta el momento, y parece también la solución, con mucho más fácil que la transferencia a lo largo de la hoja de cálculo cuando se entrega a otra persona:

"Mientras que el cuadro de lista tiene una propiedad IntegralHeight cuyo efecto secundario de un entorno FALSO mantendrá que el control de ir torcida, y al mismo tiempo los botones de comando tienen propiedades tales como mover / tamaño de las células, etc., otros controles no son tan elegante . "

y tienen algunos más consejos: http://www.experts-exchange.com/articles/5315/Dealing-with-unintended-Excel-Active-X-resizing-quirks-VBA-code-simulates-self-correction.html

Me parece que el problema sólo parece ocurrir cuando los paneles inmovilizados se enciende, que normalmente será en la mayoría de aplicaciones a medida que se coloque sus botones de comando, etc en un lugar donde no se desplazan fuera de la vista.

La solución que ha funcionado para BE es agrupar los controles sino también asegurar que el grupo se extiende más allá de la zona de los paneles inmovilizados. Hago esto mediante la adición de un control fuera del área de los paneles inmovilizados, agregarlo al grupo, sino también ocultar el control por lo que no lo ve.

Ahora, utilizando Excel 2013 y esto sucede cada vez que extiendo mi pantalla mientras se está ejecutando Excel (y cada vez que quite la extensión).

La solución que he empezado a implementar es el uso de hipervínculos en lugar de botones y una para abrir un formulario de usuario con todos los otros controles ActiveX en.

Añadir este código en un archivo .reg. Haga doble clic y y confirme. Reinicie Excel.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\options]
"LegacyAnchorResize"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Draw]
"UpdateDeviceInfoForEmf"=dword:00000001

Trate de cambiar el ajuste de zoom a 100% mediante el control deslizante inferior derecha. Corregido por mí en ambos monitores de diferentes tamaños.

he encontrado una solución que funciona, y resuelve el problema para un solo usuario. Si no desea leer mi pequeña diatriba puede saltar directamente a la solución.

RANT:

He estado experimentando este estúpido problema, ya que los dinosaurios. Mientras tanto, Microsoft ha tenido un montón de recursos para liberar innumerables cambios importantes a la suite de Office y, sin embargo este problema pasa desapercibida. Es absolutamente exasperante. No tengo razón alguna para actualizar cuando cosas básicas como esto no funciona. Seguramente alguien en MS utiliza controles ActiveX en Excel a la derecha en una pantalla de alta resolución, que no?

No experimentaron este problema en mi PC de escritorio, ni idea de por qué, pero en mi Surface Pro 4 mis controles ActiveX ir plátanos cada vez que haga clic en ellos.

Hoy he decidido a llegar al fondo de esto. Busqué en alta y baja, probé una de cada solución propuesta en varios foros (ninguno de los cuales funciona por cierto). No importa si los controles están agrupados o no, bloqueado o no, instalado revisión o no.

Ayer tuve otro problema con las cosas que comportarse mal en otra aplicación llamada Traktor (software de DJ), donde los controles saltarían alrededor cuando la escala de presentación se establece en un valor que no es un múltiplo exacto de 100%. Un usuario encontró la solución era de editar el modo de compatibilidad para esta aplicación. Así que hice lo mismo para Excel, y funcionó! Ahora mis controles mantienen en su sitio, independientemente de la resolución de pantalla y la escala.

SOLUCIÓN:

(Asegúrese de Excel no se está ejecutando)

  1. Localizar EXCEL.EXE (en mi sistema esto se puede encontrar en C: \ Archivos de programa \ Microsoft Office \ Office16 \ EXCEL.EXE)
  2. Cambiar nombre "EXCEL.EXE" a "_EXCEL.EXE" (básicamente cambiar a otra cosa)
  3. Haga clic en el archivo Excel.exe cambiado de nombre, y luego ir a Propiedades> pestaña Compatibilidad> sección Configuración
  4. Conjunto de anulación alta PPP comportamiento de escala = Habilitado y, a escala realizada por = Application
  5. Haga clic en Aceptar
  6. Cambiar nombre para volver "_EXCEL.EXE" a "EXCEL.EXE"

Ahora Excel se ejecutará en su resolución nativa y los controles ActiveX no va a ir mal. El único inconveniente es que Excel no responderá a escala de la pantalla, por lo que las cosas pueden parecer un poco más pequeño que a uno le gustaría. En mi Surface Pro 4 es más que aceptable

NOTAS:

1) los Pasos 2 y 6 se requieren con Excel 2016, debido a que el diálogo Propiedades de EXCEL.EXE no ofrece la pestaña Compatibilidad. Después de cambiar el nombre, la pestaña esté disponible.

2) Esta solución sólo funciona sobre una base de un usuario. Es decir, si envía un archivo de Excel que contiene los controles ActiveX a sus colegas, los controles ActiveX no se muestran correctamente en su sistema a menos que cambien los ajustes del modo de compatibilidad.

3) Después de aplicar este truco, archivos de Excel corruptos aparecen anteriormente de fijar ellos mismos cuando los abra, con todos los controles que se recuperan su forma original destinados dimensiones.

Por favor, prueba y comentario, espero que esto pueda ayudar a alguien, saludos!

Tengo el mismo problema a veces. En mi caso, pude replicarlo del 100% en un solo archivo, pero era inconsistente en un archivo de prácticamente idénticos. También encontré el error de tamaño no era permanente - pude guardar y volver a abrir el archivo para restaurar el aspecto del botón. También podría crear una nueva ventana y luego descarta la ventana dañada. Utilizo una única configuración de monitor.

Para mí, el botón cambia de tamaño cuando tuve acceso colección de la hoja HPageBreaks. Yo era capaz de evitar el problema cambiando temporalmente la vista de la ventana como sigue:

ActiveWindow.View = xlPageBreakPreview
  ' do pagination stuff using HPageBreaks
ActiveWindow.View = xlNormalView
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top