Kopier noget til udklipsholder i VBA

Kopier noget til udklipsholder i VBA

I denne artikel vil jeg vise dig, hvordan du i VBA kan kopiere noget til udklipsholder. Det er f.eks. anvendeligt hvis du skal bruge noget information i et andet program.
Jeg har for eksempel før lavet et program, der kopierede en mappe til en destination som brugeren valgte. Adressen til den destination skulle også bruges til et andet excelark, der skulle henvise til denne mappe. Derfor lavede jeg det sådan, at når mappen var kopieret blev adressen også kopieret til udklipsholder. Klar til at sætte ind i det andet excelark.

Kopier tekst ind i udklipsholder

Du kopierer en tekst ind i udklipsholder med denne kode:

Dim myData As DataObject
Dim Output As String
Output = "Skriv tekst her"
If Output = "" Then
End
End If
Set myData = New DataObject
myData.SetText Output
myData.PutInClipboard

Meningen er at man skal have teksten sat ind i et objekt, og dette objekt kan du så sætte over i udklipsholderen.

Det virker ikke?

Jeg havde faktisk på et tidspunkt problemer med at få det til at virke. Der blev kopieret et objekt ind i udklipsholder, men ikke som tekst, så den kunne ikke bagefter indsættes som tekst. Jeg fandt dog følgende løsning:
Indsæt først en ny tekstfelt control og sæt Visibility til False, så den er usynlig. Sæt navnet til “Copyfield”. Og brug så i stedet denne kode:

Copyfield.Text = tolocation
 Dim w As New DataObject
 w.SetText Copyfield.Text
 w.PutInClipboard

Her sættes teksten først ind i tekstfeltet, og herfra kopieres teksten uden problemer til clipboard.

Andreas Andersen

Forfatter og grundlægger af IT-blogger.dk, der har blogget om IT-emner siden 2012

Skriv et svar

%d bloggers like this: