Fråga : Arbete inom stundarbetet för titelraden med formar dynamiskt i titelraden

Hi förmiddagen för experts

I undrar, hur jag kan förbättra mitt, kodifierar nedanfört. Jag behöver att välja upp namngett ett existerande formar i titelraden av mitt dokument, tar den bort, sätter in ett nytt avbildar och resize och placerar this.

My kodifierar nedanfört gör detta, men, när kodifiera är färdig mig, avslutar upp stillbild i titelraden av dokumentet. Jag försökte att tillfoga ActiveDocument.ActiveWindow.View.SeekView = wdSeekMainDocumenten som ska fås ut ur titelraden, men den errors.

How kan I-omredigeringen den nedanföra kodifiera, så jag skriver in inte titelraden med mitt kodifierar fysiskt, ie som jag fungerar i
för titelraden dynamically.

> för
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:
" codeBody " " >Sub InsertLogoDialog2 för class= " för "" därefter Uppsättning pic = ActiveDocument.Sections (1). Titelrader (wdHeaderFooterFirstPage). Range.InlineShapes.AddPicture (FileName: =.Name _, LinkToFile: =False _, SaveWithDocument: =True spänner: =Selection.Range) Om pic. Höjd > pic. Bredd därefter Med pic pic.LockAspectRatio = msoTrue Om pic. Pic för höjd > MillimetersToPoints (16.1) därefter. Höjd = MillimetersToPoints (16.1) Avsluta med Annars Med pic pic.LockAspectRatio = msoTrue Om pic. Pic för bredd > MillimetersToPoints (100) därefter. Bredd = MillimetersToPoints (50) Avsluta med Avsluta om pic.ConvertToShape.Select Med Selection.ShapeRange . Namnge = ”LogoA”, .WrapFormat.Type = wdWrapTight . Lämnat = CentimetersToPoints (0.98) .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage . Överträffa = CentimetersToPoints (0.98) .RelativeVerticalPosition = wdRelativeVerticalPositionPage Avsluta med Avsluta om 'fel här ActiveDocument.ActiveWindow.View.SeekView = wdSeekMainDocument Application.ScreenUpdating = True Avsluta med Fastställd oDialog = ingenting Gå ut suben errInsert: MsgBox Err.Description, ”fel: Sätt in föreställer”, Avsluta suben
" klar "

Svar : Arbete inom stundarbetet för titelraden med formar dynamiskt i titelraden

Du kan fungera med Shape anmärker direkt. Det finns inte något behov att välja och därefter använda valet.

Också du kan tillfoga en Shape. Du måste inte att tillfoga ett inline formar och konverterar därefter det.

Att hjälpa mig att läsa kodifiera lättare, har jag tagit bort en radda lodlinjen som görar mellanslag och har standardiserat inryckningen.
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:
UnderInsertLogoDialog2 ()
Dunkel oDialog som Word.Dialog, lngPictureSize som dubbelt
Dunkel pic som Shape
Dunkel rng som spänner

På GoTo errInsert för fel
Fastställd oDialog = Dialogs (wdDialogInsertPicturen)

Om oDialog.Display = -1 'avbryter därefter inte pressande
    Application.ScreenUpdating = falskt
    Uppsättning pic = ActiveDocument.Sections (1). Titelrader (wdHeaderFooterFirstPage). Shapar (”LogoA”)
    Fastställd rng = pic. Ankra
    pic. Borttagnings
    
    Uppsättning pic = ActiveDocument.Shapes.AddPicture (FileName: =oDialog.Name _,
          LinkToFile: =False _,
          SaveWithDocument: =True ankrar: =rng)
    
    Med pic
        .LockAspectRatio = msoTrue
        Om. Höjd >. Bredd därefter
            Om. Höjd > MillimetersToPoints (16.1) därefter
                . Höjd = MillimetersToPoints (16.1)
            Avsluta om
        Annars
            Om. Bredd > MillimetersToPoints (100) därefter
                . Bredd = MillimetersToPoints (50)
            Avsluta om
        Avsluta om
        . Namnge = ”LogoA”,
        .WrapFormat.Type = wdWrapTight
        . Lämnat = CentimetersToPoints (0.98)
        .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
        . Överträffa = CentimetersToPoints (0.98)
        .RelativeVerticalPosition = wdRelativeVerticalPositionPage
    Avsluta med

Avsluta om

'fel här (fodra ej längre nödvändigt),
'ActiveDocument.ActiveWindow.View.SeekView = wdSeekMainDocument
Application.ScreenUpdating = True

Fastställd oDialog = ingenting
Gå ut suben
errInsert:
 MsgBox Err.Description, ”fel: Sätt in föreställer”,
Avsluta suben
Andra lösningar  
 
programming4us programming4us