Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
224to228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
224to228
224to228
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Grafik als Gif speichern

Grafik als Gif speichern
02.03.2003 18:22:59
Felix
Hallo liebe Helfer,

speicher mit folgendem Code eine Grafik aus einer Tabelle.

Mein Problem: der Auschnitt des Bildes ist links ond oben etwas größer als die Grafik. Dadurch entsteht ein weißer Rand den ich nicht brauche.

Kann mir jemand sagen wie ich den Code ändern muß damit dieser Rand weg ist? (Durch die Width- und Heighteinstellungen konnte ich wenigstens den unteren und rechten Rand beseitigen)

Vielen im Voraus für die Hilfe

Gruß
Felix

Dim container As Chart
Dim containerbok As Workbook
Dim AK As String

Private Sub ImageContainer_init()
Workbooks.Add (1)
ActiveSheet.Name = "GIFcontainer"
Charts.Add
ActiveChart.Location Where:=xlLocationAsObject, Name:="GIFcontainer"
Set containerbok = ActiveWorkbook
Set container = ActiveChart
End Sub

Sub MakeAndSizeChart(ih As Integer, iv As Integer)
Dim Höhe As Single
Dim Breite As Single
AK = Mid(ActiveChart.Name, Len(ActiveSheet.Name) + 1)
Höhe = ih / ActiveChart.ChartArea.Height
ActiveSheet.Shapes(AK).ScaleHeight Höhe, msoFalse, msoScaleFromTopLeft
Breite = iv / ActiveChart.ChartArea.Width
ActiveSheet.Shapes(AK).ScaleWidth Breite, msoFalse, msoScaleFromTopLeft
End Sub

Public Sub GIF_Snapshot()
Dim varReturn As Variant
Dim MySuggest As String
Dim Hi As Integer
Dim Wi As Integer
Dim Suffiks As Long
Dim BildName As String

BildName = "Krankenhaus1"

ImageContainer_init
ThisWorkbook.Activate
ActiveSheet.Shapes("AK_1").Select
Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
Hi = Selection.Height + 2 'adjustment for gridlines
Wi = Selection.Width + 3 'adjustment for gridlines
containerbok.Activate
ActiveSheet.ChartObjects(1).Activate
MakeAndSizeChart ih:=Hi, iv:=Wi
ActiveChart.Paste
ActiveChart.Export Filename:=LCase(BildName) & ".gif", FilterName:="GIF"
ActiveChart.Pictures(1).Delete
On Error Resume Next
Application.StatusBar = False
containerbok.Saved = True
containerbok.Close
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
weiß es jemand noch besser?
02.03.2003 21:06:09
Felix

Hallo,

habe jetzt einfach den Hintergrund mit dem des Image in der Userform angeglichen. Leider gibt es nicht die gleichen hellen Grautöne, daher habe ich mich jetzt für Grau (15) entschieden.
Jetzt sehe ich wenigstens den Rahmen und kein Weiß mehr.

Falls jemand noch eine bessere Idee hat (Problem siehe ersten Beitrag) hätte ich großes interesse.

Am ende nochmal mein zurechtgeschusterter Code:

Gruß
und einen schönen Abend wünscht
Felix

Option Explicit


Private container As Chart
Private containerbok As Workbook
Private AK As String

Private Sub ImageContainer_init()
Workbooks.Add (1)
ActiveSheet.Name = "GIFcontainer"
Charts.Add
ActiveChart.Location Where:=xlLocationAsObject, Name:="GIFcontainer"
Set containerbok = ActiveWorkbook
Set container = ActiveChart
End Sub


Sub MakeAndSizeChart(ih As Integer, iv As Integer)
Dim Höhe As Single
Dim Breite As Single
ActiveSheet.ChartObjects("Diagramm 1").Activate
With ActiveChart.ChartArea
.Border.LineStyle = 0 'kein Rahmen
.Interior.ColorIndex = 15 'Hintergrund = Grau
AK = Mid(ActiveChart.Name, Len(ActiveSheet.Name) + 1)
Höhe = ih / .Height
ActiveSheet.Shapes(AK).ScaleHeight Höhe, msoFalse, msoScaleFromTopLeft
Breite = iv / .Width
ActiveSheet.Shapes(AK).ScaleWidth Breite, msoFalse, msoScaleFromTopLeft
End With
End Sub


Public Sub GIF_Snapshot()
Dim varReturn As Variant
Dim MySuggest As String
Dim Hi As Integer
Dim Wi As Integer
Dim Suffiks As Long
Dim BildName As String
Application.ScreenUpdating = False
BildName = "Krankenhaus1"
ImageContainer_init
ThisWorkbook.Activate
With ActiveSheet.Shapes("AK_2") 'Bild aus Tabelle
.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
Hi = .Height + 4 'adjustment for gridlines
Wi = .Width + 6 'adjustment for gridlines
End With
containerbok.Activate
ActiveSheet.ChartObjects(1).Activate
MakeAndSizeChart ih:=Hi, iv:=Wi
With ActiveChart
.Paste
.Export Filename:="C:\intelliFORM\Schülerbeurteilungen\" & LCase(BildName) & ".gif", FilterName:="GIF"
.Pictures(1).Delete
End With
On Error Resume Next
Application.StatusBar = False
containerbok.Saved = True
containerbok.Close
Application.ScreenUpdating = True
End Sub


Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige