Avatar billede bigilo Nybegynder
26. marts 2008 - 21:31 Der er 10 kommentarer og
1 løsning

Oprette fast commandbar i word 2007

Jeg har brug for at oprette en commandbar med en control i, som ligger fast i Word.

Har lavet en skabelon, som jeg har lagt ind i startup mappen.
Skabelonen indenholder denne kode:
Sub AutoExec()
CreateOldCommand
End Sub

Sub CreateOldCommand()
    Dim oCB As CommandBar
    Dim oControl As CommandBarControl
   
    Set oCB = Application.CommandBars.Add
    oCB.Name = "GammelCommad"
    oCB.Visible = True
   
    Set oControl = oCB.Controls.Add(Type:=1)
    oControl.Caption = "Flet"
    oControl.OnAction = "TrykPaaNyFletKnap"
    oControl.Enabled = True
    oControl.Visible = True
   
End Sub

Sub TrykPaaNyFletKnap()
    Application.CommandBars("Nycommand").Controls("Flet").Execute
End Sub

Dette virker fint nok, når jeg åbner Word, så er knappen der.
Men når jeg lukker word, og derefter åbner et dokument, som kalder Application.CommandBars("gammelcommand").Controls("Flet").Execute
så er den endnu ikke oprettet, og derefter virker det ikke.
Har også prøvet at ligge min kode ind i normal.dot men det virker heller ikke.

Er der nogen der har en ide til hvordan man løser dette?
Avatar billede word-hajen Nybegynder
26. marts 2008 - 21:56 #1
Hvorfor kalder du en kontrol? Hvorfor kalder du ikke bare den procedure, som kontrollen normalt udfører?

Hvad er det, du laver i TrykPaaNyFletKnap? En knap i en anden toolbar?
Avatar billede rvm Nybegynder
26. marts 2008 - 22:07 #2
Hvorfor ikke benytte den nye Ribbon? Det er rimeligt let.

1. Lav en .dot fil og placer den i startup biblioteket.
2. Hent dette værtøj på internettet: "Office 2007 Custom UI Editor"
3. Åben din fil i editoren og indsæt følgende:

<?xml version="1.0" encoding="utf-8" ?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
  <tab id="myTabGrafik" label="Proark">
        <group id="group2" label="FletKnap">
        <button id="FletKnap"
            label="FletKnap"
                  imageMso="Happyface"
            size="large"
            supertip="Fletter"
                  onAction="TrykPaaNyFletKnap" />
      </group>
      </tab>

    </tabs>
  </ribbon>
</customUI>

5. Luk editoren og åben din skabelon i Word 2007
6. Indsæt din kode "TrykPaaNyFletKnap"

Nu skulle det virke :-)
Avatar billede bigilo Nybegynder
27. marts 2008 - 08:57 #3
Okay, burde nok have fortalt hvad mit første problem er.
Jeg har nogle gamle dokumenter, som alle har en macro som kalder denne:

Application.CommandBars("gammelcommand").Controls("Flet").Execute

Problemet er bare at denne knap ikke længere findes, men at den nu hedder

Application.CommandBars("Nycommand").Controls("Flet").Execute

Jeg har ikke mulighed for at ændre i den gamle macro, så jeg bliver nødt til at lave sådan så når dokument macroen kalder gammelcommand.Flet så kører den nycommand.flet

Håber at i kan hjælpe mig...
Avatar billede word-hajen Nybegynder
27. marts 2008 - 17:23 #4
Hvorfor kan du ikke ændre i den gamle macro? Hvad er der være til hinder for det?
Avatar billede bigilo Nybegynder
28. marts 2008 - 09:18 #5
Fordi der er tale om 10000 dokumenter, som ligger i et EDH system.
Så det kan man ikke lige...
Avatar billede word-hajen Nybegynder
28. marts 2008 - 11:44 #6
Så du har kode liggende i dokumenterne - i stedet for at have det i den til dokumenterne tilknyttede skabelon? (hurra for systemer, der "voldtager" Word - en personlig observation/holdning).

Men i øvrigt kan man godt kode det, så man åbner gamle dokumenter, fjerner gammel kode, indsætter ny kode osv. Selv om det tager tid (ikke at kode det, men at løbe dokumenterne igennem).

Nu ved jeg selvfølgelig ikke, hvad årsagen er til, at du har omdøbt værktøjslinjen, men det bedste ville nok være, at du "døbte den retur".
Avatar billede bigilo Nybegynder
04. april 2008 - 08:43 #7
Ja, det kan da godt være at vores system voldtager word, men det er der ikke så meget at gøre ved nu.

Men jeg har stadig et ret stort problem.
Da dokumenterne ligger i en database, vil det også tage lang tid at løbe dem alle igennem for at ændre koden, så det er heller ikke en mulighed, desværre.

Årsagen til at værktøjslinien har ændret navn, er at der er lavet en ny version af et program som vi benytter. Og der har producenten af en eller anden mærkelig grund, ændret navnet.
Og vi har endnu ikke haft mulighed for at få dem til at ændre det tilbage.

Men kan jeg få den til at gøre det rigtige, selvom den i dokument macroen
Avatar billede bigilo Nybegynder
04. april 2008 - 08:48 #8
hov, fik lige trykke på send lidt for tidligt...

Men kan jeg få den til at gøre det rigtige, selvom den i dokument macroen kalder en værkstøjslinie, som ikke findes?
Enten ved at få oprettet en værktøjslinie der hedder det rigtige, eller er det måske en anden mulighed?
Avatar billede word-hajen Nybegynder
04. april 2008 - 19:46 #9
Læste lige dit indledende spørgsmål igen. Jeg har en anden indgangsvinkel. I stedet for at du opretter værktøjslinjen via kode hver gang, du starter Word, så lav værktøjslinjen (brug gerne koden til at gøre det, da du formentlig ikke har 2003 til rådighed, så du kan lave din værktøjslinje på "gammel måde"), fjern din AutoExec, gem skabelonen. Luk Word, åbn igen. Jeg tror, at du så vil have din værktøjslinje til rådighed, INDEN det gamle dokument forsøger at kalde knappen.
Avatar billede bigilo Nybegynder
07. april 2008 - 08:23 #10
Så lykkes det. Fandt en gammel 2003 version, oprettede værktøjslinien, gemte skabelonen, og lage den over i 2007. Derefter virkede det bare som det skulle.
Så tak for hjælpen.
Avatar billede word-hajen Nybegynder
12. april 2008 - 14:02 #11
Velbekomme.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester