Gå til innhold

powerpoint macrokode(VB) - mappevis import av bilder - en fin løsning.


Anbefalte innlegg

fins det noen macro eller scriptfunksjoner i office (la oss si 2003 i første omgang) som kan legge en mappe med bilder inn i en powerpoint-fremvisning slik at det kommer et bilde på hver side, og at bildene er reskalert til å passe powerpoint-arket slik at ikke fila blir flere hundre megabyte?

 

veit at det fins en macro som gjør at man kan legge inn bilder og automatisk reskalere de for å redusere størrelsen på høyoppløste bilder, men her er det altså snakk om funksjonen å hente inn flere bilder av gangen fra ei mappe og legge de inn i dokumentent med et bilde på hver side.

Endret av Spr0cket
Lenke til kommentar
Videoannonse
Annonse

Jeg har ikke et svar på spørsmålet ditt direkte, men en alternativ løsning som kan være verdt å se på.

 

Programmet IrfanView har en fin funksjon for å vise frem bilder, både i rekkefølge som du selv angir eller sortert etter navn/dato/størelse osv...

 

Bruker det selv når jeg skal vise frem et antall bilder. Autoskalering støtter den også.

Lenke til kommentar

Da har jeg kommet i gang og har sågar fått laget en verktøylinje for å kjøre makroen enklere vha denne koden:

 

 

Sub Auto_Open()
Dim oToolbar As CommandBar
Dim oButton As CommandBarButton
Dim MyToolbar As String

' Give the toolbar a name
MyToolbar = "Kewl Tools"

On Error Resume Next   
' so that it doesn't stop on the next line if the toolbar's already there

' Create the toolbar; PowerPoint will error if it already exists
Set oToolbar = CommandBars.Add(Name:=MyToolbar, _
	Position:=msoBarFloating, Temporary:=True)
If Err.Number <> 0 Then  
	  ' The toolbar's already there, so we have nothing to do
	  Exit Sub
End If

On Error GoTo ErrorHandler

' Now add a button to the new toolbar
Set oButton = oToolbar.Controls.Add(Type:=msoControlButton)

' And set some of the button's properties
With oButton
	 .DescriptionText = "This is my first button"   
	  'Tooltip text when mouse if placed over button
	 .Caption = "Button1"	
	 'Text if Text in Icon is chosen
	 .OnAction = "Button1"  
	  'Runs the Sub Button1() code when clicked
	 .Style = msoButtonIcon	
	  ' Button displays as icon, not text or both
	 .FaceId = 52	   
	  '52 is my favorite pig; 
	  ' chooses icon #52 from the available Office icons
End With

' Repeat the above for as many more buttons as you need to add
' Be sure to change the .OnAction property at least for each new button

' You can set the toolbar position and visibility here if you like
' By default, it'll be visible when created
oToolbar.Top = 150
oToolbar.Left = 150
oToolbar.Visible = True

NormalExit:
Exit Sub   ' so it doesn't go on to run the errorhandler code

ErrorHandler:
 'Just in case there is an error
 MsgBox Err.Number & vbCrLf & Err.Description
 Resume NormalExit:
End Sub

Sub Button1()
' This code will run when you click Button 1 added above
' Add a similar subroutine for each additional button you create on the toolbar
' This is just some silly example code.  
' You'd put your real working code here to do whatever
' it is that you want to do
MsgBox "Will you PLEASE stop clicking me?  I have a headache already!"
End Sub

 

 

Denne koden er hentet fra pptfaq

 

Men, problemet er at verktøylinja legger seg midt i "arbeidsområdet", dvs ikke sammen med de andre verktøylinjene. Jeg ønsker meg at den skal docke med de andre verktøylinjene, og tror problemet ligger i denne delen av kodesnutten:

 

	oToolbar.Top = 150
oToolbar.Left = 150
oToolbar.Visible = True

 

Hva kan jeg skrive her?

 

og, når jeg har lagt til tillegget, da trenger jeg ikke lengre å ha sikkerhetsnivået på medium for å kjøre makroen, eller?

Lenke til kommentar

Du kan fjerne oToolbar.Top og Left og i steden endre koden på toppen slik:

 

Set oToolbar = CommandBars.Add(Name:=MyToolbar, _
       Position:=msoBarTop, Temporary:=False)

 

Det med sikkerhet og add-ins tør jeg ikke svare på uten å teste det ut. Hukommelsen er ikke hva den var. :)

Lenke til kommentar

Tusen takk! det funka akkurat som det skulle. Da har jeg et til spørmål, går det an å få en macro til å legge inn sidetall når han oppretter nye lysbilder? Jeg har forsøkt å legge dette inn i malen, men da får man bare sidetall på det arket som er der allerede, og når de nye lysbildene blir opprettet kommer de uten sidetall.

Lenke til kommentar

jo forresten. de kommer på de nye lysbildene hvis det er lagret i malen at sidetall skal brukes på alle - men hvorfor går det ikke an å redigere bunnteksten (sidetallet) i powerpoint slik det går i word?

 

bildene jeg bruker er så store at de dekker sidetallet, så jeg skulle ha hatt det lengre ned.

Lenke til kommentar
  • 3 uker senere...

nå har det dukket opp et nytt problem. dvs to.

 

for det første - skaleringen av store bilder (fra digitalkamera) forandrer utseendet på bildene slik at de passer greit på en powerpointside - men filstørrelsen beholdes. f.eks. 4 bilder a 2MB gir en ppt-fil på 8 MB. med fare for å snuble i terminologien, jeg trenger altså en kommando som resizer, beholder størrelsesforholdet og gjør filene mindre - inni macroen. det fins noe som heter IMage resizer powertoy som integreres i explorer sin høyreklikkmeny, men dette fordrer at man først resizer bildene og så kjører macroen.

 

dette er ikke mulig da makroen tar utgangspunkt i standardformaterte cd-plater (path == f:\bilder\*.jpg) og dermed kan man ikke bruke dette verktøyet til å resize og skrive nye filer.

 

det andre jeg lurer på er hvorfor makroen ikke kjøres hvis jeg restarter maskina - verktøylinja er der, men det skjer ingenting når jeg klikker på knappen. må man laste inn tillegget manuelt hver gang man starter programmet?

Lenke til kommentar

Så lenge du bruker Office XP eller nyere kan komprimeringen gjøres direkte i programmet. Høyreklikk på et bilde -> Formater bilde -> Komprimer... Du kan da velge å utføre komprimeringen på det valgte bildet eller alle bilder i presentasjonen.

 

For at Add-in-en skal lastes automatisk må makrosikkerheten være satt til medium eller lavere.

Lenke til kommentar
Så lenge du bruker Office XP eller nyere kan komprimeringen gjøres direkte i programmet. Høyreklikk på et bilde -> Formater bilde -> Komprimer... Du kan da velge å utføre komprimeringen på det valgte bildet eller alle bilder i presentasjonen.

 

For at Add-in-en skal lastes automatisk må makrosikkerheten være satt til medium eller lavere.

 

vi har office 2000 på jobb. tror ikke komprimering er en funksjon her.

 

har lest litt på forum og ut fra det jeg leser er det en native funksjon i MS VB som kan komprimere bmp-bilder, men ikke jpeg.

 

den komprimeringen du snakker om i office xp, kan den legges inn som macro?

Lenke til kommentar

Det stemmer at den funksjonen ikke finnes i Office 2000. Jeg har forsøkt med makro-recorderen i Office XP og 2003 men den plukker ikke opp komprimeringen. Dette kan tyde på at komprimeringen ikke er støttet i VB. Jeg skal sjekke litt videre på ulike forum. Uansett vil en slik komprimering ikke være tilgjengelig i Office 2000, selv om den eventuelt kjøres fra VB.

Lenke til kommentar

fins det noen annen automatisert løsning for denne komprimeringen dersom man tar utgangspunkt i de forutsetningene jeg skrev?

 

jeg ser fra dette tipset at deet snakker om gjelder fra den nest siste utgaven av office (den som har lyseblå i stedet for grå verktøylinjer)

 

dette er trolig en officefunksjon og ikke en vb-funksjon som du sier

 

office.microsoft.com hadde også sjeldent nyttig informasjon.

Endret av Spr0cket
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...