Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
788to792
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
788to792
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Eingebettetes Objekt in Datei speichern

Eingebettetes Objekt in Datei speichern
03.08.2006 16:12:11
Mark
Hallo zusammen
Ich möchte ein eingebettetes Objekt (test.ttf) per VBA in eine Datei auf der Festplatte speichern. Dieser Font wird benötigt, um den Inhalt der Arbeitsmappe korrekt anzuzeigen.
Ich habe gesehen, dass das mit Grafiken (*.bmp, *.jpg usw.) per "Chart.Export" geht.
Gibt es eine Lösung (können auch API-Befehle sein) welche auch auf andere
Dateien als Grafikdateien angewendet werden kann ?
Vielen Dank im voraus für Eure Hilfe
Gruss Markus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingebettetes Objekt in Datei speichern
03.08.2006 18:06:33
Gerd
Hi,
in eine Excelmappe kann eine Schrifzart nicht eingebettet werden.
Bist du sicher dass es um Excel geht?
mfg Gerd
AW: Eingebettetes Objekt in Datei speichern
03.08.2006 21:43:48
Josef
Hallo Markus!
Einbetten geht in Excel nicht.
Aber wenn du die Datei mit der Font-Datei weitergibst, zB. gezipt, und den Font im
Verzeichnis der Arbeitsmappe ablegst, dann könnte man mit folgendem Code die Schriftart temporär registrieren.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
RegisterFont
End Sub


Private Sub Workbook_Open()
UnRegisterFont
End Sub


' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Function AddFontResource Lib "gdi32" _
  Alias "AddFontResourceA" (ByVal lpFileName As _
  String) As Long

Private Declare Function RemoveFontResource Lib "gdi32" _
  Alias "RemoveFontResourceA" (ByVal lpFileName As _
  String) As Long

Private Declare Function SendMessage Lib "user32" Alias _
  "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As _
  Long, ByVal wParam As Long, lParam As Any) As Long

Private Const HWND_BROADCAST As Long = &HFFFF&
Private Const WM_FONTCHANGE As Long = &H1D&

Private Const strFont As String = "deinFont.ttf" 'Name der Schriftdatei - Anpassen!

Sub RegisterFont()
Dim Result As Long

Result = AddFontResource(ThisWorkbook.Path & "\" & strFont)

SendMessage HWND_BROADCAST, WM_FONTCHANGE, 0, 0

End Sub



Sub UnRegisterFont()
Dim Result As Long

Result = RemoveFontResource(ThisWorkbook.Path & "\" & strFont)

SendMessage HWND_BROADCAST, WM_FONTCHANGE, 0, 0
End Sub


Gruß Sepp

Anzeige
Velwechsert!
03.08.2006 22:03:27
Josef
;-)
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
UnRegisterFont
End Sub


Private Sub Workbook_Open()
RegisterFont
End Sub


Gruß Sepp

Anzeige
AW: Velwechsert!
04.08.2006 15:25:28
Mark
Hallo Sepp
Habe den Code mal ausprobiert. Das installieren und deinstallieren funktioniert problemlos. DANKE !
Nur wenn ich eine Arbeitsmappe öffne welche schon Text drin hat, dann wird dieser Text (Zellinhalt) nicht automatisch in der neu geladenen Schriftart angezeigt, ob schon diese als Schriftart in der Zellenformatierung angegeben ist.
Hast du da eine Lösung wie man das machen könnte, dass eine automatische Aktualisierung erfolgt.
Gruss
Markus
AW: Eingebettetes Objekt in Datei speichern
04.08.2006 07:25:02
Mark
Hallo Sepp
Schon mal besten Dank für den Beispiel-Code. Das ist schon ein sehr guter Ansatz. Ich werde ihn auf jedenfall ausprobieren. Ziel ist jedoch dem Anwender nur ein File zu geben damit er keinen Fehler machen kann.
Nun zum Thema, dass das mit dem einbetten einer Schrift in Excel nicht geht. Ich habe diese Datei über das Menu "Einfügen-Objekt-Aus Datei erstellen" eingebunden. Wobei die Eigenschaft "Verknüpfen" NICHT aktiviert war. Somit bin ich der Meinung, dass diese Datei eingebettet ist, oder verstehe ich da was falsch? Das kann man aus meiner Sicht auch mit anderen Dateien so machen.
Nur eben wie kriege ich die wieder aus Excel raus ?
Besten Dank im voraus für deine Bemühungen
Gruss Markus
Anzeige
AW: Eingebettetes Objekt in Datei speichern
04.08.2006 14:09:54
Gerd
Hi,
ich lass mich gern belehren, wie greifst du auf die Schriftart in dem eingebettetem
Objekt zu?
mfg Gerd
AW: Eingebettetes Objekt in Datei speichern
04.08.2006 14:50:52
Mark
Hallo Gerd
Wenn ich die eingebettete Datei auf die Harddisk speichern kann, dann kann ich diese ins Font-Verzeichnis von Windows kopieren. Nach einem Neustart von Excel steht dann die Schriftart zur Verfügung.
Nur eben wenn ich die nicht extrahieren kann, dann kann ich sie auch nicht kopieren.
Gruss
Markus
AW: Eingebettetes Objekt in Datei speichern
04.08.2006 16:18:16
Gerd
Hi,
das Extrahieren eines Objekts in eine Datei ist nicht möglich, das geht auch in Word nicht.
mfg Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige