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.