CALC: Bild einfügen
Moderator: Moderatoren
CALC: Bild einfügen
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
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
Hallo Loudos,
folgendes sollte funktionieren:
Die Pfadangabe sollte in etwa so lauten:
Fragen zur Programmierung bitte im Bereich OOo Basic und Java stellen.
Viel Erfolg.
Jürgen
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
Code: Alles auswählen
C:/User/Folder/ImageName.jpg
Viel Erfolg.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Makro Bild einfügen
danke für den code
leider funktioniert er bei mir nicht, hab folgendes problem
und noch eine frage bei
Sorry hab garkeine Ahnung von sowas.
Gruß
leider funktioniert er bei mir nicht, hab folgendes problem
hier kommt folgender fehler: BASIC-Laufzeitfehler. Objektvariable nicht belegtoBildGroesse =NewGrafik.GraphicObjectFillBitmap.GetSize
und noch eine frage bei
muß ich da bei "in Pixeln" und bei "Grösse festlegen" etwas eintragen?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
Sorry hab garkeine Ahnung von sowas.
Gruß
Re: Makro Bild einfügen
Du weisst schon, dass das Problem in den meissten Fällen zwischen Tastatur und Rückenlehne sitzt.Loudos hat geschrieben:hab folgendes problem

Das kommt daher, dass die Grafik schlichtweg nicht unter dem angebenen Pfad vorhanden ist!Loudos hat geschrieben:hier kommt folgender fehler: BASIC-Laufzeitfehler. Objektvariable nicht belegt

Füge mal zwischen:
Code: Alles auswählen
GrafikName = ConvertToURL(oCell.String)
Code: Alles auswählen
NewGrafik.GraphicURL=GrafikName
Code: Alles auswählen
if not FileExists(GrafikName) then
msgbox "Die Grafik ist nicht vorhanden!"
exit sub
end if
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: muß ich da bei "in Pixeln" und bei "Grösse festlegen" etwas eintragen?
Stephan hat sich die Arbeit gemacht und eine Liste zusammengestellt für weiterführende Informationen zur Starbasic-Programmierung.Loudos hat geschrieben:Sorry hab garkeine Ahnung von sowas.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Makro Bild einfügen
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?
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
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?
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?
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Makro Bild einfügen
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
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
Da bin ich jetzt aber beruhigt.Loudos hat geschrieben:es lag doch am leerzeichen.

ErsetzeLoudos hat geschrieben:kannst du mir noch sagen was ich machen soll damit er die datei in die 2te tabelle einfügt.
Code: Alles auswählen
mySheet = oDoc.Sheets(0)
Code: Alles auswählen
mySheet = oDoc.Sheets(1)
Schönes Restwochenende.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem