Cuestión : Trabajar dentro del jefe dinámicamente mientras que trabaja con formas en el jefe

Hola experts

I que se pregunta cómo puedo mejorar mi código abajo. Necesito coger una forma nombrada existente en el jefe de mi documento, suprimirlo, insertar una nueva imagen y volverlos a clasificar según el tamaño y el código de la posición this.

My abajo hace esto, pero cuando el código es finished yo todavía termina para arriba en el jefe del documento. Intenté agregar ActiveDocument.ActiveWindow.View.SeekView = wdSeekMainDocument a salir del jefe pero errors.

How puede yo reescribe el código abajo así que no entro en el jefe físicamente conmigo código, IE que trabajo en el

del jefe dynamically.

class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
>Sub notpretty InsertLogoDialog2 " del class= " del id= " codeSnippet830299 del
 entonces
        
    Fijar pic = ActiveDocument.Sections (1).Headers (wdHeaderFooterFirstPage). Range.InlineShapes.AddPicture (nombre de fichero: =.Name, _
            LinkToFile: =False, _
            SaveWithDocument: =True, gama: =Selection.Range)
            
            Si pic. Altura > pic. Anchura entonces
                    Con el pic
                        pic.LockAspectRatio = msoTrue
                        Si pic. Pic de la altura > de MillimetersToPoints (16.1) entonces. Altura = MillimetersToPoints (16.1)
                        
                    Extremo con
            
                    Con el pic
                        pic.LockAspectRatio = msoTrue
                        
                        Si pic. Pic de la anchura > de MillimetersToPoints (100) entonces. Anchura = MillimetersToPoints (50)
                        
                    Extremo con
            Terminar si
            
            pic.ConvertToShape.Select
            
                Con Selection.ShapeRange
                . Nombre = “LogoA”
                .WrapFormat.Type = wdWrapTight
                . Izquierda = CentimetersToPoints (0.98)
                .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
                . Tapa = CentimetersToPoints (0.98)
                .RelativeVerticalPosition = wdRelativeVerticalPositionPage
                Extremo con
                     
   Terminar si
   
  'error aquí
  ActiveDocument.ActiveWindow.View.SeekView = wdSeekMainDocument
   
   Application.ScreenUpdating = verdad
   
  Extremo con
 Fijar el oDialog = nada
 Salir el submarino
errInsert:
 MsgBox Err.Description, “error: Insertar el cuadro”
Terminar el submarino
class= del

Respuesta : Trabajar dentro del jefe dinámicamente mientras que trabaja con formas en el jefe

Usted puede trabajar con los objetos de la forma directo. No hay necesidad de seleccionar y después de utilizar la selección.

También, usted puede agregar una forma. Usted no tiene que agregar una forma en línea y después convertirla.

Para ayudarme a leer el código más fácilmente, he quitado mucho el espaciamiento vertical y he estandardizado la melladura.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
InsertLogoDialog2 secundarios ()
Amortiguar el oDialog como Word.Dialog, lngPictureSize como doble
Amortiguar el pic como forma
Amortiguar el rng como gama

En errInsert indicado del error
Fijar el oDialog = los diálogos (el wdDialogInsertPicture)

Si oDialog.Display = -1 entonces 'cancelan no presionado
    Application.ScreenUpdating = falso
    Fijar pic = ActiveDocument.Sections (1).Headers (wdHeaderFooterFirstPage). Formas (“LogoA”)
    Fijar el rng = el pic. Ancla
    pic. Cancelación
    
    Fijar pic = ActiveDocument.Shapes.AddPicture (nombre de fichero: =oDialog.Name, _
          LinkToFile: =False, _
          SaveWithDocument: =True, ancla: =rng)
    
    Con el pic
        .LockAspectRatio = msoTrue
        Si. Altura >. Anchura entonces
            Si. Altura > MillimetersToPoints (16.1) entonces
                . Altura = MillimetersToPoints (16.1)
            Terminar si
        
            Si. Anchura > MillimetersToPoints (100) entonces
                . Anchura = MillimetersToPoints (50)
            Terminar si
        Terminar si
        . Nombre = “LogoA”
        .WrapFormat.Type = wdWrapTight
        . Izquierda = CentimetersToPoints (0.98)
        .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
        . Tapa = CentimetersToPoints (0.98)
        .RelativeVerticalPosition = wdRelativeVerticalPositionPage
    Extremo con

Terminar si

'error aquí (línea no más necesaria)
'ActiveDocument.ActiveWindow.View.SeekView = wdSeekMainDocument
Application.ScreenUpdating = verdad

Fijar el oDialog = nada
Salir el submarino
errInsert:
 MsgBox Err.Description, “error: Insertar el cuadro”
Terminar el submarino
Otras soluciones  
 
programming4us programming4us