Just nu i M3-nätverket
Gå till innehåll
speedy1

Excel 2010 - klistra in i Notepad++ med vba

Rekommendera Poster

Hej,

 

Jag försöker via Excel vba klistra in text i Notepad++, med kod:

 

Shell "C:\Program Files (x86)\Notepad++\notepad++.exe -nosession, vbNormalFocus

SendKeys "^V"

 

men ingenting klistras in automatiskt. När Notepad++ öppnats händer inget mer (om jag här använder Ctrl+V manuellt klistras det kopierade in men jag vill ha det automatiskt).

SendKeys "^V" borde väl automatiskt klistra in den redan kopierade texten?

 

Någon som har en idé?

 

/speedy1

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Fungerar det om du riktar koden mot t.ex. vanliga Anteckningar (notepad.exe)?

Kanske det behövs en kort fördröjning innan du skickar tangentkommandot? Sätta en timer på 1 sekund eller något sådant.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Ja, det fungerar mot vanliga notepad.exe men jag behöver ha in det i Notepad++.exe (med en default-text före det kopierade dessutom).

Ok, ska prova att lägga in en fördröjning. Varför kan det behövas menar du?

 

 

... provade att lägga in en fördröjning på 1 sek, på raden före SendKeys "^V" men då aktiveras inte ens notepad++ fönstret längre.

 

Jag korrigerade min "fördröjningskod". Nu aktiveras notepad++ men fortfarande klistras inget in ...

 

 

 

/speedy1

Redigerad av speedy1

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Jag testar om och om igen ... det ser ut som den klistrar in "SYN" i stället för det som kopierats (?!)

 

När jag manuellt öppnar ett nytt notepad++ är det helt tomt. När denna kod öppnar ett notepad++  (och verkar ändå göra något mer ...) står där sedan "SYN" t.h. om "1".

Av någon anledning ser det ut som om den klistrar in "SYN". Hmm, var kommer det ifrån?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Har nu labbat med detta en stund och jag får precis som du denna [sYN] i Notepad++

Testade även att skicka text direkt till klippbordet via MSForms-objekt men samma "fel".

Alt fungerar jättefint mot vanliga Notepad.

 

Men denna "fullösning" får jag att fungera, att skicka tangentkommandon som går via menyerna på Notepad++ (svensk version). Kör du med t.ex. engelska menyer så får du anpassa till rätt tangenttryckningar.

Sub notepad()
    
    Range("A1:C3").Copy
    
    Shell "C:\Program Files (x86)\Notepad++\notepad++.exe", vbNormalFocus
    
    SendKeys "%", True
    SendKeys "R", True
    SendKeys "l", True

End Sub

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Tack, Ove!

 

En "fullösning" är också en lösning :thumbsup:, och i det här fallet ser din lösning ut att fungera bra.

Eftersom jag har engelsk version av notepad++ fick jag ändra vilka bokstäver som skulle användas i kombination med Alt (%).

Lade till att den skulle öppna ett nytt "blad" i notepad++ (SendKeys "%F" ihop med SendKeys "%N") för att med säkerhet få in det på ett helt tomt blad.

 

Tack igen!

 

 

/speedy1

Redigerad av speedy1

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Nu när det hela tycks ha löst sig kanske jag som inte alls kan VBA kan ställa två frågor?

 

1. Måste man simulera tangenttryckningar? Finns inget "paste"?

2. Skulle det fungera att med VBA skriva direkt till filen och därefter öppna den för fortsatt redigering?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Jag är inte säker men

 

1. man måste nog simulera knapptryckningar när man hanterar andra Applikationer via Excel vba

2. vet ej, tyvärr

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...