Jag har fått i uppgift att göra en liten Excel-applikation som skall styra en skrivare. Jag tycker själv inte om när folk gör så här (om jag är stressad), men varför försöker du köra det från Excel? Tack Niklas för nån sort svar :-P Jag bidrar med ett långskott eftersom ingen annan svarar. Jag har styrt en skrivare med hjälp av escape-koder tidigare. Den satt på printerporten och det löste jag så här. >Hmm - om du ser någon hålla på att tappa en mycket tung låda, ställer du dig och >frågar "Varför bär du en så tung låda" istället för att hjälpa till att hålla den? ;-) >Det borde fungera om du ersätter LPT1: med COM1:. Värt ett försök i alla fall? Och om det nu trots allt inte skulle funka, kan du ju testa det här istället. Det är VB.NET, men det går ju lätt att få till VBA, det vikitga är APIna. Stänger tråden - eftersom problemet löstes genom att de returnerade skrivaren :-PStyra COM-port från VBA
Skrivaren kan endast anslutas med en seriell kabel.
Det finns ingen drivrutin till skrivaren, men däremot en handbok med Escape-sekvenser. :-/
Min lösning är följande:
- Excel tar emot alla texter som skall skrivas
- Vid tryck på knapp så skapas en textfil som är formatterad med alla Escape-sekvenser etc som skrivaren måste ha.
- Sedan startar Excel en command-session och kopierar ut textfilen till COM-porten
Vad jag ville göra är givetvis att skicka textsträngen direkt till COM-porten.
Efter ett par veckors letande - har jag inte hittat något sätt att göra detta.
Miljön är Excel 97 - alternativt Excel 2000 och körs i Windows NT4 alt Windows XP
Jag har provat mscomm.dll - men den vägrar starta - fel licens. Jag vill inte
installera VB på den här maskinen. Jag inser också att jag skulle kunna skapa en komponent för styrning av com-porten, men är lite för lat för det ...
Så - äntligen - frågan:
* Finns det någon som har löst liknande problem, dvs styrt en COM-port via VBA i Excel?Sv: Styra COM-port från VBA
Enda skälet jag kan komma på är att det helt saknas annan utvecklingsmiljö.
Excel VBA är inte VB, och är tänkt att interagera med andra program när det inte räcker till.
Det största problemet med VBA är ju just att den inte klarar av de flesta kontroller och många objekt.
Antar att du utvecklar för ett företag som konsult.
Då borde det väl inte vara några problem att skriva programmet utanför företaget, på en privat dator, och sedan leverera det?
Det är iaf mitt råd i frågan.
PS.
Varför i h-vete har ni fått in en skrivare som bara kan anslutas till serieporten, och som inte har några drivrutiner? =)Sv: Styra COM-port från VBA
>> Jag tycker själv inte om när folk gör så här (om jag är stressad), men varför försöker du köra det från Excel?
Hmm - om du ser någon hålla på att tappa en mycket tung låda, ställer du dig och frågar "Varför bär du en så tung låda" istället för att hjälpa till att hålla den? ;-)
Men, du skall ha tack för att du svarar i alla fall. Det är som du ser inte så många som har gjort det, ännu!
Jag håller väl med dig i mycket, men det är användarna som kräver detta.
De är hemma i Excel och har liten förståelse för att det skall vara någon skillnad.
>>Då borde det väl inte vara några problem att skriva programmet utanför företaget, på en privat dator, och sedan leverera det?
Situationen är sådan att jag är inhyrd konsult på IT-avd, dock har dom ingen egen utveckling här. Mitt uppdrag är tidsbegränsad och när jag en gång i tiden försvinner, så finns det ingen programmerare kvar här. Om de då vill fixa i programmet, så måste de hyra in en konsult, och det vill de inte göra. Så om jag skriver ett litet vb-prg och de behöver ändra - så är de tillbaka på noll.
>>Varför i h-vete har ni fått in en skrivare som bara kan anslutas till serieporten, och som inte har några drivrutiner? =)
Tja, jag var aldrig tillfrågad - jag antar att skrivar-leverantören har en duktig säljare.
Men det är en speciell skrivare för att skriva på glasrör - och jag antar att det inte finns så många sådana.
Det finns en DDE-drivrutin - men då måste ett speciellt chip installeras som kostar mycket pengar. Det finns också något DTP-liknande program som också är mycket dyrt. De vill inte lägga ner mycket pengar på detta eftersom de leasar skrivaren för att se OM det går att använda den.
Men, egentligen är allt detta ointressant - grundproblemet kvarstår.
Det måste finnas något sätt att styra COM-port från Excel. T ex läsa in mätvärden till Excel ark från sensorer eller liknande. Bara jag får någon ledtråd så vore jag mycket tacksam!Sv: Styra COM-port från VBA
<code>Open "LPT1:" For Output As #1
Print #1, strStyrkod
Close #1</code>
Det borde fungera om du ersätter LPT1: med COM1:. Värt ett försök i alla fall?
//JanneSv: Styra COM-port från VBA
Precis...det var det jag menade.. =)
Eftersom du ju uppenbarligen är låst i Excel, så blir det nog svårt. Funderar på om du måste ge dig in i Win-APIt...
Annars hittade jag de här länkarna; kanske kan hjälpa
http://www.geocities.com/lyesoft/
http://www.programmersheaven.com/zone15/cat610/Sv: Styra COM-port från VBA
Jo, tusan - detta borde ju naturligitvis funka!
Ignorera min tidigare okunnighet/obetänksamhet...
Ibland låser man sig... =)Sv: Styra COM-port från VBA
http://www.fut.es/~sje/vbnet/hmds_en.htmSv: Styra COM-port från VBA