Stránka 1 z 1

VBA script - oprava

Napsal: 04 led 2023 18:45
od Grander
Ahoj mám tu VBA script, který něco dělá v PowerPointu (2019), a výsledkem je, že vygeneruje řetězec, a tento řetězec (tedy v příkladu 999999) zapíše do schránky. Ta první část s vygenerováním funguje (MsgBox správně zobrazí těch 99999), ale ten zápis do schránky nějak ne - když dám Ctrl+V třeba v poznámkovém bloku, tak se nic nestane.
Mohli byste prosím říct, v čem je problém a případně opravit? Děkuji.

Kód: Vybrat vše

Sub hexString()
Dim hexString As String
    hexString = 999999
    Dim data As New DataObject
    data.SetText (hexString)
    data.PutInClipboard
    MsgBox hexString
End Sub


Re: VBA script - oprava

Napsal: 04 led 2023 21:54
od atari
Máš tohle zaškrtnuto: VBA > TOOLS > REFERENCES > "Microsoft Forms 2.0 Object LIbrary" ?

Re: VBA script - oprava

Napsal: 04 led 2023 22:41
od Grander
Jj, to mám.

Re: VBA script - oprava

Napsal: 05 led 2023 09:37
od atari
V kodu problém není. Mně ten kod funguje a do schránky to vloží, to co má.

Hledal bych problém ve WIN. Existují různé programy, které pracují se schránkou. Tak možná to třeba nějak blokují. Nic jiného mě nenapadá.

Dodatečně přidáno po 8 minutách 25 vteřinách:
Ještě mě napadlo zkus to napsat v klasickém VB nebo PowerShellu, a uvidíš jestli to bude fungovat. To by mohla být nápověda, kde je chyba.

Re: VBA script - oprava

Napsal: 12 led 2023 13:48
od Grander
Děkuji!
Proč to nešlo, jsem nezjistil, nicméně nakonec jsem ten script celkově poupravil, udělal z něj samostatně fungující VBS a do schránky to zapisuji přes shell:

Kód: Vybrat vše

Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c echo " & hexString & "| clip", 0, True