Seite 1 von 1
CALC: Bild einfügen
Verfasst: Sa, 27.02.2010 18:02
von Loudos
Hallo zusammen!
ich hab mich hier grade erst angemeldet ich hoffe mir kann jemand helfen.
Ich versuche ein makro zu schreiben das folgendes macht:
Das Makro fügt in die aktuelle Tabelle eine Grafik ein.
Der Pfad dieser Grafik soll aber aus der Zelle A1 bestimmt werden!
So könnte ich grafiken über ein marko einfügen und müsste nur den namen ändern!
Ich hoffe jemand weiß wie das geht
danke gruß loudos
Moderation,4: verschoben in MAKROS (und allgem. Programmierung)-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst
Re: Makro Bild einfügen
Verfasst: Sa, 27.02.2010 18:53
von turtle47
Hallo Loudos,
folgendes sollte funktionieren:
Code: Alles auswählen
Sub BildEinfuegen
Dim oDoc as Object
Dim mySheet as Object
Dim oCell as Object
Dim Page as Object
Dim GrafikName as String
oDoc = thisComponent
mySheet = oDoc.Sheets(0)
Page = mySheet.drawPage
NewGrafik = oDoc.createInstance("com.sun.star.drawing.GraphicObjectShape")
oCell = mySheet.getCellRangeByName("A1")
GrafikName = ConvertToURL(oCell.String)
NewGrafik.GraphicURL=GrafikName
NewGrafik.name = GrafikName
oCell = mysheet.getcellRangebyName("C5")'Ankerposition festlegen
page.add(NewGrafik)
NewGrafik.Anchor = oCell
Dim Size As New com.sun.star.awt.Size
oBildGroesse =NewGrafik.GraphicObjectFillBitmap.GetSize
hoehe = oBildGroesse.height ' in Pixeln
breite = oBildGroesse.width 'in Pixeln
dim oGrafikGroesse as new com.sun.star.awt.Size
oGrafikGroesse.height = hoehe * 20 'Grösse festlegen
oGrafikGroesse.width = breite * 20
NewGrafik.setSize(oGrafikGroesse)
End Sub
Die Pfadangabe sollte in etwa so lauten:
Fragen zur Programmierung bitte im Bereich
OOo Basic und Java stellen.
Viel Erfolg.
Jürgen
Re: Makro Bild einfügen
Verfasst: So, 28.02.2010 10:29
von Loudos
danke für den code
leider funktioniert er bei mir nicht, hab folgendes problem
oBildGroesse =NewGrafik.GraphicObjectFillBitmap.GetSize
hier kommt folgender fehler: BASIC-Laufzeitfehler. Objektvariable nicht belegt
und noch eine frage bei
hoehe = oBildGroesse.height ' in Pixeln
breite = oBildGroesse.width 'in Pixeln
dim oGrafikGroesse as new com.sun.star.awt.Size
oGrafikGroesse.height = hoehe * 20 'Grösse festlegen
oGrafikGroesse.width = breite * 20
muß ich da bei "in Pixeln" und bei "Grösse festlegen" etwas eintragen?
Sorry hab garkeine Ahnung von sowas.
Gruß
Re: Makro Bild einfügen
Verfasst: So, 28.02.2010 11:02
von turtle47
Loudos hat geschrieben:hab folgendes problem
Du weisst schon, dass das Problem in den meissten Fällen zwischen Tastatur und Rückenlehne sitzt.
Loudos hat geschrieben:hier kommt folgender fehler: BASIC-Laufzeitfehler. Objektvariable nicht belegt
Das kommt daher, dass die Grafik schlichtweg nicht unter dem angebenen Pfad vorhanden ist!
Füge mal zwischen:
und
folgende Zeilen ein:
Code: Alles auswählen
if not FileExists(GrafikName) then
msgbox "Die Grafik ist nicht vorhanden!"
exit sub
end if
Damit wird überprüft, ob das Bild überhaut vorhanden ist. Wenn nicht, dann gibt es eine Fehlermeldung.
Loudos hat geschrieben:
muß ich da bei "in Pixeln" und bei "Grösse festlegen" etwas eintragen?
Nein, nicht unbedingt. Den Wert "20" kannst Du beliebig verändern, welches einen Einfluss auf die Grösse des Bildes im Sheet hat.
Loudos hat geschrieben:Sorry hab garkeine Ahnung von sowas.
Stephan hat sich die Arbeit gemacht und eine
Liste zusammengestellt für weiterführende Informationen zur Starbasic-Programmierung.
Jürgen
Re: Makro Bild einfügen
Verfasst: So, 28.02.2010 12:42
von Loudos
also wenn das wirklich daran liegt das die datei nicht vorhanden sein soll, dann liegt wohl echt an mir, ich hab die datei definitiv dort liegen!
hab auch ein makro aufgenohmen mit dem ich speziel diese eine datei einfüge und da gehts.
was kann ich tun, oder liegt doch am code?
Re: Makro Bild einfügen
Verfasst: So, 28.02.2010 13:03
von turtle47
Hmm, schwer zu sagen warum es nicht geht.
Kann es sein, dass bei der Pfadangabe in der Zelle vorne oder hinten noch Leerzeichen stehen die da nicht hingehören?
Ansonsten poste mal den Code den Du aufgezeichnet hast.
Was für ein BS und welche OOo-Version nutzt Du?
Re: Makro Bild einfügen
Verfasst: So, 28.02.2010 13:23
von Loudos
Sub BildEinfuegen
Dim oDoc as Object
Dim mySheet as Object
Dim oCell as Object
Dim Page as Object
Dim GrafikName as String
oDoc = thisComponent
mySheet = oDoc.Sheets(0)
Page = mySheet.drawPage
NewGrafik = oDoc.createInstance("com.sun.star.drawing.GraphicObjectShape")
oCell = mySheet.getCellRangeByName("A1")
GrafikName = ConvertToURL(oCell.String)
if not FileExists(GrafikName) then
msgbox "Die Grafik ist nicht vorhanden!"
exit sub
end if
NewGrafik.GraphicURL=GrafikName
NewGrafik.name = GrafikName
oCell = mysheet.getcellRangebyName("C5")'Ankerposition festlegen
page.add(NewGrafik)
NewGrafik.Anchor = oCell
Dim Size As New com.sun.star.awt.Size
oBildGroesse =NewGrafik.GraphicObjectFillBitmap.GetSize
hoehe = oBildGroesse.height ' in Pixeln
breite = oBildGroesse.width 'in Pixeln
dim oGrafikGroesse as new com.sun.star.awt.Size
oGrafikGroesse.height = hoehe * 20 'Grösse festlegen
oGrafikGroesse.width = breite * 20
NewGrafik.setSize(oGrafikGroesse)
End Sub
es lag doch am leerzeichen.
kannst du mir noch sagen was ich machen soll damit er die datei in die 2te tabelle einfügt.
Loudos
Re: Makro Bild einfügen
Verfasst: So, 28.02.2010 14:02
von turtle47
Loudos hat geschrieben:es lag doch am leerzeichen.
Da bin ich jetzt aber beruhigt.
Loudos hat geschrieben:kannst du mir noch sagen was ich machen soll damit er die datei in die 2te tabelle einfügt.
Ersetze
durch
Der Index der Tabellenblätter fängt bei Null an zu zählen.
Schönes Restwochenende.
Jürgen