i'm trying to pass some data to mainfame and do some operations and trying to take a screen shot to word document. in this way i was able to pass data to manfrme nd do operations but not taking screen shot to word document. below is my code which i'm using for it. please advice me for taking screen shot..
Code: Select all
Sub Pm()
rw = 2
r2 = 2
'Connects to PCOMM and checks for lockouts.
Dim autECLSession As Object
Dim autECLConnList As Object
Dim wshshell As Object
Dim oScrShell As Object
Dim a As Integer
Set wshshell = CreateObject("WScript.Shell")
'Set autECLSession = CreateObject("word.Application")
Set autECLSession = CreateObject("PCOMM.autECLSession")
'give the mainframe session in which macro has to be executed --> here it is Session B
autECLSession.SetConnectionByName ("A")
Set autECLConnList = CreateObject("PCOMM.autECLConnList")
'If ThisWorkbook.PCOMM_Connect(autECLSession, autECLConnList) = False Then slush = MsgBox("You appear to be logged out of Mainframe. Please" & (Chr(13)) & "log back in and try again.", 16, "Mainframe locked"): Exit Sub
' select the worksheet --> Sheet1
Set objSheet0 = ActiveWorkbook.Worksheets(1)
autECLSession.autECLPS.SendKeys "[home]"
autECLSession.autECLPS.SendKeys "[erase eof]"
' wshshell.Run "winword"
If objSheet0.Cells(rw, 1).Value <> "" Then
a = 1
Do While objSheet0.Cells(r2, 1).Value <> ""
autECLSession.autECLPS.SendKeys "[home]"
autECLSession.autECLPS.SendKeys objSheet0.Cells(r2, 1).Value & "[enter]"
autECLSession.autECLPS.SendKeys "[home]"
autECLSession.autECLPS.SendKeys "[tab]" & "[erase eof]" & "[tab]"
autECLSession.autECLPS.SendKeys "[erase eof]" & "[tab]" & "[erase eof]"
autECLSession.autECLPS.SendKeys "[tab]" & "[erase eof]"
autECLSession.autECLPS.SendKeys "[home]"
autECLSession.autECLPS.SendKeys "[tab]" & "[tab]" & "[tab]"
autECLSession.autECLPS.SendKeys objSheet0.Cells(r2, 2).Value
autECLSession.autECLPS.SendKeys "[ENTER]"
autECLSession.autECLPS.SendKeys objSheet0.Cells(r2, 3).Value
autECLSession.autECLPS.SendKeys objSheet0.Cells(r2, 4).Value
autECLSession.autECLPS.SendKeys objSheet0.Cells(r2, 5).Value
' autECLSession.autECLPS.SendKeys "[tab]"
autECLSession.autECLPS.SendKeys objSheet0.Cells(r2, 6).Value
' autECLSession.autECLPS.SendKeys "[tab]"
autECLSession.autECLPS.SendKeys objSheet0.Cells(r2, 7).Value
' autECLSession.autECLPS.SendKeys "[tab]"
autECLSession.autECLPS.SendKeys objSheet0.Cells(r2, 8).Value
autECLSession.autECLPS.SendKeys "[ENTER]"
autECLSession.autECLPS.SendKeys "[PF10]"
' autECLSession.autECLPS.SendKeys "{^C}"
' autECLSession.autECLPS.SendKeys "^{C}"
wshshell.AppActivate "Session A - [43 x 80]"
' autECLSession.autECLPS.GetText [(1, 80, 43)]
autECLSession.autECLPS.SendKeys "^c"
If a = 1 Then
wshshell.Run "winword"
wshshell.AppActivate "Document1 - Microsoft Word"
' wshshell.SendKeys ["%a"]
'
' wshshell.SendKeys ("i")
' wshshell.SendKeys ("t")
' wshshell.SendKeys ("1")
' wshshell.SendKeys "[%tab]"
' wshshell.SendKeys ("1")
a = a + 100
End If
' oScrShell.SendKeys "^V"
wshshell.SendKeys "^v"
wshshell.SendKeys "[tab]"
r2 = r2 + 1
Loop
wshshell.SendKeys "[tab]"
a = 1
rw = rw + 1
End If
End Sub
help will be
thanks in advance..
chaitanya