Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1360to1364
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
Inhaltsverzeichnis

Bild aus Zwischenablage als Kommentar-Hintergrund

Bild aus Zwischenablage als Kommentar-Hintergrund
21.05.2014 17:21:35
Arthur
Hallo zusammen.
Eine kleine Herausforderung zum Abend:
Wie es funktioniert ein Bild aus einer Datei als Hintergrund für einen Kommentar zu verwenden ist klar:
Sub InsertPictures()
With Selection
.ClearComments
.AddComment ("")
.Comment.Shape.Fill.UserPicture ("x:\Imgs\TestPic.jpg")
End With
End Sub

Die Herausforderung: Wie bekomme ich diese Zuweisung aus dem Zwischenspeicher hin? Lässt sich das Clipboard entsprechend auslesen und die Zuweisung des Bildes bewerkstelligen?
Mittels GetClipboardData(CF_TEXT) komme ich an Texte. Mit GetClipboardData(CF_BITMAP) sollte ich an Bilder kommen, weiß dann aber nicht, was zu tun ist, weil nur ein Handle zurück kommt. Mit ActiveSheet.Paste wird die Zwischenablage auf dem Worksheet eingefügt, nicht im Kommentar, wobei die Abfrage ob Bild oder Text fehlt ...
Gruß, Arthur

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild aus Zwischenablage als Kommentar-Hintergrund
22.05.2014 00:46:02
Ewald
Hallo Arthur,
eigentlich hast du doch schon alles gesagt.
Die Zuweisung eines Bildes zu einem Kommentarhintergrund erfolgt über den Pfad des Bildes und nicht über das Objekt Bild.
Wenn du über die Zwischenablage gehen willst, mußt du dort den Pfad reinkopieren.
ich frage mich nur warum überhaupt die Zwischenablage und dann Makro und nicht direkt
Gruß Ewald

AW: Bild aus Zwischenablage als Kommentar-Hintergrund
22.05.2014 08:26:03
Arthur
Hallo Ewald.
Ich fürchte, dass es über die Zwischenablage direkt keinen Weg gibt, mal abgesehen von einem direkten Paste auf ein Worksheet.
Zu deiner Frage: Eigentlich hast du doch schon alles gesagt :o) Ich möchte an ein Bild in der Zwischenablage ran. Nur liegt das nicht in einer Datei vor.
Gruß, Arthur

Anzeige
AW: Bild aus Zwischenablage als Kommentar-Hintergrund
22.05.2014 08:34:46
Nepumuk
Hallo,
Wo ist da ein Problem? Erstell doch einfach eine Datei aus den Bild.
Gruß
Nepumuk

AW: Ein Beispiel
22.05.2014 14:20:26
Ewald
Hallo,
teste mal
Grafik markieren und dann Makro ausführen, in der Inputbox muß die Zelle mit dem Kommentar angegeben werden
Sub Grafik_in_Kommentar()
Dim myChart As Chart, myChartObject As ChartObject
Dim int_with As Integer, int_hight As Integer
Dim myrng As Range
Dim Anzahl
Anzahl = AnzDateien(ActiveWorkbook.Path)
Application.ScreenUpdating = False
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
int_with = Selection.Width - Selection.Width / 100 * 8
int_hight = Selection.Height - Selection.Height / 100 * 8
Set myChart = Charts.Add
Set myChartObject = ActiveChart.ChartObjects.Add(0, 0, int_with, int_hight)
With myChartObject.Chart
.Paste
.Export Filename:=ActiveWorkbook.Path & "\zwischenablage" & Anzahl & ".jpg", FilterName: _
="JPG", Interactive:=False
End With
Application.DisplayAlerts = False
myChart.Delete
Application.DisplayAlerts = True
Set myChart = Nothing
Set myChartObject = Nothing
Set myrng = Application.InputBox("Bitte Zelle mit Kommentar auswählen", Type:=8)
Application.GoTo myrng
With Selection
.ClearComments
.AddComment ("")
.Comment.Shape.Fill.UserPicture (ActiveWorkbook.Path & "\zwischenablage" & Anzahl & " _
.jpg")
End With
Application.ScreenUpdating = True
End Sub
Private Function AnzDateien(ByVal strPfad As String) As Long
Dim objFSO As Object
Dim objOrdner As Object
On Error GoTo Fehler
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objOrdner = objFSO.GetFolder(strPfad)
'Anzahl Dateien
AnzDateien = objOrdner.Files.Count
Set objFSO = Nothing
Set objOrdner = Nothing
Exit Function
Fehler:
Set objFSO = Nothing
Set objOrdner = Nothing
MsgBox "FehlerNr.: " & Err.Number & _
vbNewLine & vbNewLine & _
"Beschreibung: " & Err.Description, _
vbCritical, "Fehler:"
End
End Function
Gruß Ewald
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige