Aktivierung und Sendkeys bei Notepad per VBA-Excel



Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Aktivierung und Sendkeys bei Notepad per VBA-Excel
von: Markus
Geschrieben am: 16.07.2002 - 09:11:34

Hallo,

ich möchte gerne eine Datei in Notepad öffnen. Anschließend diese aktivieren und per Sendkeys Tastaturbefehle absetzen. Danach sollte die Datei unter gleichem Namen gespeichert werden und die Anwendung notepad geschlossen.
Das ganz natürlich per VBA in Excel. Ich habe derzeit folgenden VBA-Code entwickelt.

Sub Notepad_bearbeiten()

Dim Anwendung$

Anwendung = "c:\winnt\notepad.exe"
Speicher_Pfad_Textdateien = "D:\Temp\Text_Dateien\"
Dateiname = "test_305.txt"

ChDir Speicher_Pfad_Textdateien

AnWID = Shell(Anwendung + " " + Speicher_Pfad_Textdateien + Dateiname, vbMinimizedFocus)
AppActivate AnWID

' Löschen der ersten 160 Zeichen in Notepad
SendKeys "{Del 160}"
SendKeys "%{F4}" ' Anwendung beenden
Application.Wait Now + TimeSerial(0, 0, 2)
On Error Resume Next

End Sub

Dieser öffnet mir auf jeden Fall die Datei in Notepad. Leider jedoch funktionieren die Sendkeys-Befehle nicht. Was mache ich denn da falsch.

Es wäre schön wenn mir jemand helfen könnte. Vielen Dank nochmal im voraus.

Mfg

Markus

nach oben   nach unten

Re: Aktivierung und Sendkeys bei Notepad per VBA-Excel
von: sam
Geschrieben am: 16.07.2002 - 09:26:16

hi,

versuche bei sendkeys den WAIT-Parameter zu aktivieren. wahrscheinlich werden deine Tastencodes zu früh durchgeführt

SendKeys "{Del160}", True

Achtung: Sendkeys sollten nur als allerletztes Mittel eingesetzt werden, da sie sehr unsicher sind. In deinem Fall ist das Einlesen und zurückschreiben der Datei viel sicherer:


Sub Korrigieren()
  Dim txt As String, zeile As String
  
  'Einlesen der Datei
  Close #1
  Open "C:\test.txt" For Input As #1
  Do While Not EOF(1)    ' Schleife bis Dateiende.
    Input #1, zeile ' Ein Zeichen lesen.
    txt = txt & zeile
  Loop
  Close #1
 
  'Um 160 Zeichen kürzen
  txt = Right(txt, Len(txt) - 160)
  
  'Zurückschreiben
  Open "C:\test.txt" For Output As #1
  Print #1, txt
  Close #1
End Sub

Viel Spaß,
Sam

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Aktivierung und Sendkeys bei Notepad per VBA-Excel"