HERBERS Excel-Forum - die Beispiele

Thema: Tabellenblattbereich als Grafik speichern

Home

Gruppe

Grafik

Problem

Der selektierte Bereich soll als *.gif-Grafik gespeichert werden.

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.
StandardModule: Modul1

Harold Staff -- see http://www.geocities.com/davemcritchie/excel/xl2gif.htm
XL2GIF_module -- GIF_Snapshot
Dim container As Chart
Dim containerbok As Workbook
Dim Obnavn As String
Dim Sourcebok As Workbook

Function SelectArea() As String
   Dim Internrange As Range
   On Error GoTo Brutt
   Set Internrange = Application.InputBox("Select " _
      & "range to be photographed:", "Picture Selection", _
      Selection.AddressLocal, Type:=8)
   SelectArea = Internrange.Address
   Exit Function
Brutt:
   SelectArea = "A1"
End Function

Function sShortname(ByVal Orrginal As String) As String
   Dim iii As Integer
   sShortname = ""
   For iii = 1 To Len(Orrginal)
      If Mid(Orrginal, iii, 1) <> " " Then _
         sShortname = sShortname & Mid(Orrginal, iii, 1)
      Next
   End Function
   
Private Sub ImageContainer_init()
   Workbooks.Add (1)
   ActiveSheet.Name = "GIFcontainer"
   Charts.Add
   ActiveChart.ChartType = xlColumnClustered
   ActiveChart.SetSourceData Source:=Worksheets(1).Range("A1")
   ActiveChart.Location Where:=xlLocationAsObject, _
      Name:="GIFcontainer"
   ActiveChart.ChartArea.ClearContents
   Set containerbok = ActiveWorkbook
   Set container = ActiveChart
End Sub

Sub MakeAndSizeChart(ih As Integer, iv As Integer)
   Dim Hincrease As Single
   Dim Vincrease As Single
   Obnavn = Mid(ActiveChart.Name, Len(ActiveSheet.Name) + 1)
   Hincrease = ih / ActiveChart.ChartArea.Height
   ActiveSheet.Shapes(Obnavn).ScaleHeight Hincrease, _
      msoFalse, msoScaleFromTopLeft
   Vincrease = iv / ActiveChart.ChartArea.Width
   ActiveSheet.Shapes(Obnavn).ScaleWidth Vincrease, _
      msoFalse, msoScaleFromTopLeft
End Sub

Public Sub GIF_Snapshot()
   Dim varReturn As Variant
   Dim MyAddress As String
   Dim SaveName As Variant
   Dim MySuggest As String
   Dim Hi As Integer
   Dim Wi As Integer
   Dim Suffiks As Long
   Set Sourcebok = ActiveWorkbook
   MySuggest = sShortname(ActiveSheet.Name)
   ImageContainer_init
   Sourcebok.Activate
   MyAddress = SelectArea
   If MyAddress <> "A1" Then
      SaveName = Application.GetSaveAsFilename( _
         initialfilename:=MySuggest _
         & ".gif", fileFilter:="Gif Files (*.gif), *.gif")
      Range(MyAddress).Select
      Selection.CopyPicture Appearance:=xlScreen, _
         Format:=xlBitmap
      If SaveName = False Then
         GoTo Avbryt
      End If
      If InStr(SaveName, ".") Then SaveName _
         = Left(SaveName, InStr(SaveName, ".") - 1)
         Selection.CopyPicture Appearance:=xlScreen, _
            Format:=xlBitmap
         Hi = Selection.Height + 4  'adjustment for gridlines
         Wi = Selection.Width + 6   'adjustment for gridlines
         containerbok.Activate
         ActiveSheet.ChartObjects(1).Activate
         MakeAndSizeChart ih:=Hi, iv:=Wi
         ActiveChart.Paste
         ActiveChart.Export Filename:=LCase(SaveName) & _
            ".gif", FilterName:="GIF"
         ActiveChart.Pictures(1).Delete
         Sourcebok.Activate
      End If
Avbryt:
      On Error Resume Next
      Application.StatusBar = False
      containerbok.Saved = True
      containerbok.Close
End Sub

Beiträge aus dem Excel-Forum zu den Themen Grafik und Grafikexport

Jahresgrafik Grafik - Linie nach unten, Kriterien links
Grafik auf Position bringen Viele Grafiken mit gleicher Größe einfügen
Excel Grafiken nur schwarz/weiss Grafik drucken
Grafik nach Change in Exceltabelle laden Bereich als Grafik speichern
Grafiken kopieren Text und Grafik in Fusszeile
Grafik in der Kopfzeile - OHNE PFADANGABE Grafik, Datenbeschriftung
Linie in einer Grafik ansprechen Grafik positionieren
Linien-Säulen auf zwei Achsen - Grafik Grafik in Zelle einfügen, wie?
mehrere Grafiken aus derselben Pivot Grafik anzeigen - evtl. Reihenfolge ändern?
Grafikobjekt nach Zelleingabe anpassen Grafik in Zellen - Sparklines
Grafik Option Explicit zusweisen Grafik bei Nullen nicht weiterführen
Makro bei Rechtsklick auf Grafik Kontextmenü Grafik
Grafikgröße nach Hyperlink festlegen Grafik Drehmoment Leistung
Grafiken mit Säuledarstellung Dynamische Grafik/Diagramm
Beschriftung bei Bubble-Grafik gestapelte Säulengrafik
Dynamischer Datenbereich bei Grafiken Grafik
Schwellenwert in Excel-Grafik einfügen? wechselnde grafiken abhängig von wert einblenden
Grafik-Spezial Vorschaugrafik
Grafikformat Grafik in Tabelle, abhängig von Zellinhalt
Grafikprogramm über Excel legen Grafik in XLS-Kopfzeile im PPT darstellen
Grafiken aus derselben Pivot Grafik mit selektierten Daten
veränderbare Grafik je nach Datenmenge Formatier. einer Pivot Grafik wird immer Rückges.
Grafik immer aktualisieren mehrere Grafiken aus einer Pivot
verzogene Grafik mit VBA zurücksetzen bestimmte Grafik in Zelle nach löschen
3D-Grafik X-Achsenbeschriftung Grafik beim Öffnen einer Datei