05. december 2008 - 13:17Der er
10 kommentarer og 1 løsning
Data fra Excel til dias i PowerPoint
Flg kode er fundet på nettet, men den giver en fejl "ActiveX component can`t create objekt" i nedenstående Set PPApp = GetObject(, "Powerpoint.Application")
og her er hele koden:
Sub RangeToPresentation()
Dim PPApp As PowerPoint.Application Dim PPPres As PowerPoint.Presentation Dim PPSlide As PowerPoint.Slide
If Not TypeName(Selection) = "Range" Then MsgBox "Please select a worksheet range and try again.", vbExclamation, _ "No Range Selected" Else
Set PPApp = GetObject(, "Powerpoint.Application") Set PPPres = PPApp.ActivePresentation PPApp.ActiveWindow.ViewType = ppViewSlide Set PPSlide = PPPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
PPSlide.Shapes.Paste.Select PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True Set PPSlide = Nothing Set PPPres = Nothing Set PPApp = Nothing End If
Vil du starte din makro uden at PP er åben, så prøv med
Sub RangeToPresentation()
Dim PPApp As PowerPoint.Application Dim PPTPres As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide
If Not TypeName(Selection) = "Range" Then MsgBox "Please select a worksheet range and try again.", vbExclamation, _ "No Range Selected" Else
Set PPApp = CreateObject("Powerpoint.Application") Set PPTPres = PPApp.Presentations.Add PPApp.Visible = True PPApp.ActiveWindow.ViewType = ppViewSlide
With PPTPres.Slides Set PPTSlide = .Add(.Count + 1, ppLayoutText) End With Set PPTSlide = PPTPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex) Selection.CopyPicture Appearance:=xlScreen, _ Format:=xlPicture
PPTSlide.Shapes.Paste.Select PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True Set PPTSlide = Nothing Set PPTPres = Nothing Set PPApp = Nothing End If
Det troede jeg var i orden, men det er det nu og det virker. Hvis jeg nu vil gå ind i en eksisterende dias-skablon og indsætte mit range fra excel, hvordan får jeg så det il at passe hver gang - det "rager udenfor". Skal det laves om til billede og skal jeg have en "billedramme" i min skabelon. Navn på skabelon "Min skabelon"
Jeg er ikek sikker på, om du kan få det til at "passe" hver gang. Størrelsen vil afhænge af det kopierede område, og det er muligtat du kan bestemme størrelsen på den relevante Shape i PP, men jeg kan ikke lige umiddelbart se hvordan, og har desværre ikek så meget tid til at eksperimentere.
Jeg retter den til i excel og det funker. Tak for hjælpen.Vil du ligge et svar ikrons? Tilbage er der blot det, at jeg gerne vil bruge en skabelon. dot, som skal indsættes i stedet for nyt doc (koden). Er det muligt. Hvis du ikke har tid vil jeg oprette et nyt spørgsmål - her er koden:
Sub Dias() ' ' Range ' Application.Goto Reference:="Område i Excel" ' ' KopierTilBillede ' Selection.CopyPicture _ Appearance:=xlScreen, Format:=xlPicture Application.Goto Reference:="Område i Excel - lavet om til billede" ActiveSheet.Paste ' ' Billedstørrelse ' Selection.ShapeRange.LockAspectRatio = msoTrue Selection.ShapeRange.Height = 363.75 Selection.ShapeRange.Width = 682.5 Selection.ShapeRange.Rotation = 0# Selection.Copy ' ' OpretDias ' Dim PPApp As PowerPoint.Application Dim PPTPres As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide
Set PPApp = CreateObject("Powerpoint.Application") Set PPTPres = PPApp.Presentations.Add PPApp.Visible = True PPApp.ActiveWindow.ViewType = ppViewSlide
With PPTPres.Slides Set PPTSlide = .Add(.Count + 1, ppLayoutText) End With Set PPTSlide = PPTPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex) Selection.CopyPicture Appearance:=xlScreen, _ Format:=xlPicture
Ok - jeg opretter det sidste som nyt spørgsmål.Fernes=fjernes.
Synes godt om
Ny brugerNybegynder
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.