Questione : Funzionare dinamicamente all'interno dell'intestazione mentre funzionando con le figure nell'intestazione

Ciao experts

I che si domanda come posso migliorare il mio codice qui sotto. Devo prendere una figura chiamata esistente nell'intestazione del mio documento, cancellarla, inserire una nuova immagine e ridimensionare ed il codice di posizione this.

My sotto fanno questo, ma quando il codice è finished io si concludono in su ancora in intestazione del documento. Ho provato ad aggiungere ActiveDocument.ActiveWindow.View.SeekView = wdSeekMainDocument da uscire dell'intestazione ma errors.

How può io riscrive il codice qui sotto in modo da non entro fisicamente nell'intestazione con il mio codice, IE che lavoro nel

dell'intestazione dynamically.

class= > " libero " 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
 allora
        
    Regolar pic = ActiveDocument.Sections (1).Headers (wdHeaderFooterFirstPage). Range.InlineShapes.AddPicture (nome di schedario: =.Name, _
            LinkToFile: =False, _
            SaveWithDocument: =True, gamma: =Selection.Range)
            
            Se pic. Altezza > pic. Larghezza allora
                    Con il pic
                        pic.LockAspectRatio = msoTrue
                        Se pic. Pic di MillimetersToPoints > di altezza (16.1) allora. Altezza = MillimetersToPoints (16.1)
                        
                    Estremità con
            Altrimenti
                    Con il pic
                        pic.LockAspectRatio = msoTrue
                        
                        Se pic. Pic di MillimetersToPoints > di larghezza (100) allora. Larghezza = MillimetersToPoints (50)
                        
                    Estremità con
            Concluder se
            
            pic.ConvertToShape.Select
            
                Con Selection.ShapeRange
                . Nome = “LogoA„
                .WrapFormat.Type = wdWrapTight
                . Parte di sinistra = CentimetersToPoints (0.98)
                .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
                . Parte superiore = CentimetersToPoints (0.98)
                .RelativeVerticalPosition = wdRelativeVerticalPositionPage
                Estremità con
                     
   Concluder se
   
  'errore qui
  ActiveDocument.ActiveWindow.View.SeekView = wdSeekMainDocument
   
   Application.ScreenUpdating = allineano
   
  Estremità con
 Regolare il oDialog = niente
 Uscire il sommergibile
errInsert:
 MsgBox Err.Description, “errore: Inserire l'immagine„
Concludere il sommergibile
class= del

Risposta : Funzionare dinamicamente all'interno dell'intestazione mentre funzionando con le figure nell'intestazione

Potete lavorare con gli oggetti di figura direttamente. Non ci è necessità di selezionare ed allora usare la selezione.

Inoltre, potete aggiungere una figura. Non dovete aggiungere una figura in-linea ed allora convertirli.

Per aiutarlo a leggere più facilmente il codice, ho rimosso il molto gioco verticale ed ho standardizzato la rientranza.
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 secondari ()
Oscurare il oDialog come Word.Dialog, lngPictureSize come doppio
Oscurare il pic come figura
Oscurare il rng come gamma

Sul errInsert di avanzamento di errore
Fissare il oDialog = i dialoghi (wdDialogInsertPicture)

Se oDialog.Display = -1 allora 'annullano urgente
    Application.ScreenUpdating = falso
    Regolar pic = ActiveDocument.Sections (1).Headers (wdHeaderFooterFirstPage). Figure (“LogoA„)
    Regolare il rng = il pic. Ancoraggio
    pic. Cancellazione
    
    Regolar pic = ActiveDocument.Shapes.AddPicture (nome di schedario: =oDialog.Name, _
          LinkToFile: =False, _
          SaveWithDocument: =True, ancoraggio: =rng)
    
    Con il pic
        .LockAspectRatio = msoTrue
        Se. Altezza >. Larghezza allora
            Se. Altezza > MillimetersToPoints (16.1) allora
                . Altezza = MillimetersToPoints (16.1)
            Concluder se
        Altrimenti
            Se. Larghezza > MillimetersToPoints (100) allora
                . Larghezza = MillimetersToPoints (50)
            Concluder se
        Concluder se
        . Nome = “LogoA„
        .WrapFormat.Type = wdWrapTight
        . Parte di sinistra = CentimetersToPoints (0.98)
        .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
        . Parte superiore = CentimetersToPoints (0.98)
        .RelativeVerticalPosition = wdRelativeVerticalPositionPage
    Estremità con

Concluder se

'errore qui (linea più necessaria)
'ActiveDocument.ActiveWindow.View.SeekView = wdSeekMainDocument
Application.ScreenUpdating = allineano

Regolare il oDialog = niente
Uscire il sommergibile
errInsert:
 MsgBox Err.Description, “errore: Inserire l'immagine„
Concludere il sommergibile
Altre soluzioni  
 
programming4us programming4us