Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-07-2014
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 17
_CALI Va por buen camino
ocultar cinta de opciones (ribbon) excel 2007

Hola Amigos, después de tiempo y como siempre quisiera que me echen una manito con lo siguiente:
Resulta que estoy con un TOlecontainer y un TExcelApplication para manejar datos de excel desde mi formulario,
el problema es que quisiera ocultar la cinta de opciones(Ribbon) del excel 2007 y no veo la manera, indagando mire sobre la edición de un archivo XML pero la verdad lo encuentro engorros, probé con las siguientes formas:

Código Delphi [-]

  Excel := TExcelApplication.Create(Self);
  Ole.CreateObjectFromFile('D:\archivo.xlsx', False);

  // Ole.OleObject.ActiveWindow.View.Application.OpenAttachmentsInFullScreen := true;
  // Ole.OleObject.ActiveWindow.ToggleRibbon;
  // Ole.OleObject.ActiveWindow.View.FullScreen := true;
  // Ole.OleObject.Application.ExecuteExcel4Macro('SHOW.TOOLBAR(""Ribbon"", ""false"")');
  // Ole.OleObject.Application.ExecuteExcel4Macro('Application.DisplayFullScreen = True');
  // Ole.OleObject.Application.SendKeys('^{F1}', true, 0);
  
  Ole.DoVerb(ovShow);
  Excel.ConnectTo(_Workbook(Ole.OleObjectInterface as _Workbook).Application);
hasta ahi todo funciona OK,
pero ninguna de las lineas en comentarios me funciona se lanza el error "Interface not supported"
estoy trabajando con XE6 y office 2007

alguna sugerencia?, Gracias de antemano!!

Última edición por _CALI fecha: 03-07-2014 a las 03:11:50.
Responder Con Cita
  #2  
Antiguo 17-07-2020
averdu averdu is offline
Registrado
 
Registrado: jul 2020
Posts: 1
Poder: 0
averdu Va por buen camino
ocultar cinta de opciones (ribbon) excel 2007

Hola, me veo obligado a responder y al mismo tiempo a preguntar sobre este tema porque hay muy poca información sobre esto aún a día de hoy,

La única manera que encuentro de poder ocultar la cinta de opciones es con el siguiente método que he creado al crear un formulario desde un botón, el cual inserta un bloque de código como macro en el módulo de código Visual Basic que trae Excel en el objeto OLE importado:


Código Delphi [-]
procedure TForm2.FormCreate(Sender: TObject);
var
  selector: TOpenTextFileDialog;
  VB, VWB, VExcel: OleVariant;
  s: string;
begin
  // Seleccionamos archivo
  selector := TOpenTextFileDialog.Create(nil);
  selector.Filter := 'Documentos Excel|*.xls;*.xlsx;*.xlsb;*.xlsm';
  selector.Execute(Application.Handle);

  // Si no hay selección salimos
  if selector.Files.Count = 0 then
  begin
    Close;
    Exit;
  end;

  //Creamos objeto
  OleContainer1.CreateObjectFromFile(selector.Files[0], false);
  OleContainer1.DoVerb(ovInPlaceActivate);

  //Obtenemos el Módulo de código de VB para insertar código
  VWB := Olecontainer1.Oleobject;
  VExcel := VWB.Application;
  s := 'Sub OcultarCinta()'
  + #13#10
  + 'ExecuteExcel4Macro("show.toolbar(""ribbon"",0)")'
  + #13#10
  + 'Application.DisplayFormulaBar = False'
  + #13#10
  + 'ActiveWindow.DisplayWorkbookTabs = False'
  + #13#10
  + 'ActiveWindow.DisplayHeadings = False'
  + #13#10
  + 'End Sub';
  VB := VWB.VBProject.VBComponents.Add(1);
  VB.CodeModule.AddFromString(s);

  //Ejecutamos macro
  s := VExcel.Run('OcultarCinta');

  //mostramos formulario cargado
  Show;
end;

Esto trae 2 problemas principales, primero la interfaz se ajusta dejando un bloque en blanco en la parte superior del formulario y otro bloque más estrecho en la parte inferior, me gustaría saber como solucionar este tema para que la solución sea definitiva, adjunto captura de pantalla. ¿Alguna solución a esto?

El otro problema es que dependiendo del Excel que se utilice, si las macros están deshabilitadas aparecerá un mensaje de error indicando que o bien no existe la macro o están deshabilitadas y no ejecutará el código, ¿Alguien sabe si existe una manera de forzar la activación de macros en Excel o una alternativa a generar código en VisualBasic?

Saludos.
Imágenes Adjuntas
Tipo de Archivo: jpg Form2.jpg (34,4 KB, 2 visitas)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema al ocultar opciones en la cinta TRibbon Jere_84 Varios 0 14-05-2014 21:58:28
Crear cinta de opciones en Delphi Jere_84 Varios 4 31-01-2014 23:46:30
crear un grafico en excel 2007 desde Delphi 2007 Jose Manuel Varios 1 27-12-2013 19:56:30
ocultar filas y columnas en excel 2007 ritamarkarla Servers 6 27-10-2010 20:52:41
ocultar columna de excel tutuk Servers 2 22-05-2005 16:12:00


La franja horaria es GMT +2. Ahora son las 22:28:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi