Bilder von Digitalkamera in Word über Makro einfügen incl. Größenbeschränkung der Bilder
Hallo Administrator-Gemeinde,
Für die Wunddokumentation bei uns im Hause besteht die unten beschriebene Anforderung.
Ich konnte aber auch nach langer Recherche keine wirklichen Lösungsansetze finden.
->Was für Rückgabewerte kann ich von "WordBasic.InsertImagerScan" erwarten?!
Das untenstehende Script fügt zwar die Bilder ein aber ich habe noch keine Möglichkeit gefunden,
die Bilder in der Größe zu beschränken -> Bilder >300Kb sollen nicht mehr eingefügt werden.
Besten Dank schon einmal im Voraus....
Aufgrund der Protokoll/Firmware-Entwicklung (PTP) in den Kompaktkameras werden diese nicht mehr als Laufwerk unter Windows eingebunden.
In Word kann man somit nicht mehr direkt auf die Kamera zugreifen um Bilder einzufügen.
Ist-Umgebung: Canon PowerShot A480; WindowsXP; Office2003;
Anforderung: Makro innerhalb von Word2003 über das der "Bild von Kamera oder Scanner einfügen"-Dialog geöffnet wird,
mehrere Bilder selektiert und mit einer Größenbeschränkung (300KB pro Bild) in Word eingefügt werden können.
Hat von Euch einer eine Idee, wie ich die Anforderung umsetzen kann -> Bild einfügen funktioniert aber wie kann ich die Größe der Bilder beschränken?
Im Moment erhalte ich immer eine Fehlermeldung "Laufzeitfehler'450' Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft"
Danke schon einmal im Voraus.
Scriptgerüst bis jetzt:
' #########################################################
'
' Diese Routine fügt die gewünschte Grafik ein
'
' #########################################################
Public Const iMaxFileSize = 300000 ' Maximale Dateigröße in Byte
Sub InsertPicture()
'Variablen
Dim lFileSize As Long ' Dateigröße
Dim sFileName As String ' Dateiname
'Word2003 call to Scanner software
WordBasic.InsertImagerScan
'Ab hier ist es nur noch Mutmaßung -> da ich nicht weis, was von WordBasic.InsertImagerScan übergeben wird um die Dateigröße zu bestimmen...
' Dateinamen herausfinden
sFileName = WordBasic.InsertImagerScan("") '<- Das scheint nicht zu funktionieren, dadurch wird die oben beschriebene Fehlermeldung erzeugt.
' Wurde eine Datei ausgewählt?
If Not sFileName = "" Then
' Größe der Datei ermitteln
lFileSize = FileLen(sFileName)
' Ist die Datei größer als der Grenzwert?
If lFileSize < iMaxFileSize Then
' Nein, dann Grafik einfügen
Set shpCanvas = Selection.InlineShapes.AddPicture(FileName:=sFileName, _
LinkToFile:=False, SaveWithDocument:=True)
' Grafik nicht mehr ausblenden (für den Ausdruck)
shpCanvas.Select
Selection.Font.Hidden = False
Else
' Ja, dann Meldung ausgeben
MsgBox sMessage, vbCritical + vbOKOnly, "Grafikgröße verändern"
End If
End If
End Sub
Für die Wunddokumentation bei uns im Hause besteht die unten beschriebene Anforderung.
Ich konnte aber auch nach langer Recherche keine wirklichen Lösungsansetze finden.
->Was für Rückgabewerte kann ich von "WordBasic.InsertImagerScan" erwarten?!
Das untenstehende Script fügt zwar die Bilder ein aber ich habe noch keine Möglichkeit gefunden,
die Bilder in der Größe zu beschränken -> Bilder >300Kb sollen nicht mehr eingefügt werden.
Besten Dank schon einmal im Voraus....
Aufgrund der Protokoll/Firmware-Entwicklung (PTP) in den Kompaktkameras werden diese nicht mehr als Laufwerk unter Windows eingebunden.
In Word kann man somit nicht mehr direkt auf die Kamera zugreifen um Bilder einzufügen.
Ist-Umgebung: Canon PowerShot A480; WindowsXP; Office2003;
Anforderung: Makro innerhalb von Word2003 über das der "Bild von Kamera oder Scanner einfügen"-Dialog geöffnet wird,
mehrere Bilder selektiert und mit einer Größenbeschränkung (300KB pro Bild) in Word eingefügt werden können.
Hat von Euch einer eine Idee, wie ich die Anforderung umsetzen kann -> Bild einfügen funktioniert aber wie kann ich die Größe der Bilder beschränken?
Im Moment erhalte ich immer eine Fehlermeldung "Laufzeitfehler'450' Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft"
Danke schon einmal im Voraus.
Scriptgerüst bis jetzt:
' #########################################################
'
' Diese Routine fügt die gewünschte Grafik ein
'
' #########################################################
Public Const iMaxFileSize = 300000 ' Maximale Dateigröße in Byte
Sub InsertPicture()
'Variablen
Dim lFileSize As Long ' Dateigröße
Dim sFileName As String ' Dateiname
'Word2003 call to Scanner software
WordBasic.InsertImagerScan
'Ab hier ist es nur noch Mutmaßung -> da ich nicht weis, was von WordBasic.InsertImagerScan übergeben wird um die Dateigröße zu bestimmen...
' Dateinamen herausfinden
sFileName = WordBasic.InsertImagerScan("") '<- Das scheint nicht zu funktionieren, dadurch wird die oben beschriebene Fehlermeldung erzeugt.
' Wurde eine Datei ausgewählt?
If Not sFileName = "" Then
' Größe der Datei ermitteln
lFileSize = FileLen(sFileName)
' Ist die Datei größer als der Grenzwert?
If lFileSize < iMaxFileSize Then
' Nein, dann Grafik einfügen
Set shpCanvas = Selection.InlineShapes.AddPicture(FileName:=sFileName, _
LinkToFile:=False, SaveWithDocument:=True)
' Grafik nicht mehr ausblenden (für den Ausdruck)
shpCanvas.Select
Selection.Font.Hidden = False
Else
' Ja, dann Meldung ausgeben
MsgBox sMessage, vbCritical + vbOKOnly, "Grafikgröße verändern"
End If
End If
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 151995
Url: https://administrator.de/contentid/151995
Ausgedruckt am: 20.11.2024 um 03:11 Uhr