Accessing Windows clipboard during runtime

C

Conan Kelly

Is it possible to access the Clipboard with code during runtime? I would like to clear the clipboard and then paste contents to it.

Here is a sample of my code:

...
...
...
ActiveWorkbook.SaveAs Filename:=strPath & strFileName, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close False
' Clipboard.Clear
' Clipboard.SetText Format(intDate, "Short Date")
MsgBox "Number of records:" & vbTab & FormatNumber(intLastRow - 1, 0, vbFalse, vbFalse, vbTrue) & vbCrLf & vbCrLf & vbTab & " Date:" & vbTab & Format(intDate, "m-d-yyyy") & vbCrLf & vbCrLf & " File Name:" & vbTab & strFileName, vbOKOnly, "Stats"
End Sub



The Clipboard commands are commented out because whenever I run this, Excel crashes, has to close down, asks to send an error report to MS, and I lose any unsaved data.

I got these commands from a project I was working on in my Programming Fundamentals class. When I looked these commands up in VB6's Object Browser, it said that the command was from the VB Library. I went to References to see what it was using (and their paths). The 2 I thought it could be were "VB Objects & Procedures" and "VB Runtime Objects & Procedures". I tried selecting these references in VBA by browsing to their path. The path for VB O & P was fine and was able to use it okay. But the path for VB Runtime O & P was "C:\WINDOWS\SYSTEM32\msvbvm60.dll\3". First, how do I refer to "\3" of a .dll file. Second, when I tried refering to "C:\WINDOWS\SYSTEM32\msvbvm60.dll" it gave me an error saying "Name conflicts with existing module, project, or object library".

Any help with this would be greatly appreciated,

Conan Kelly
 
J

Jim Rech

I'm not familiar with the technique you're using. Usually Excel developers
just use a DataObject to put something in the clipboard:

Sub a()
Dim MyData As DataObject
Set MyData = New DataObject
MyData.SetText Format(Now, "Short Date")
MyData.PutInClipboard
End Sub

--
Jim
Is it possible to access the Clipboard with code during runtime? I would
like to clear the clipboard and then paste contents to it.

Here is a sample of my code:

...
...
...
ActiveWorkbook.SaveAs Filename:=strPath & strFileName,
FileFormat:=xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close False
' Clipboard.Clear
' Clipboard.SetText Format(intDate, "Short Date")
MsgBox "Number of records:" & vbTab & FormatNumber(intLastRow - 1, 0,
vbFalse, vbFalse, vbTrue) & vbCrLf & vbCrLf & vbTab & " Date:" & vbTab &
Format(intDate, "m-d-yyyy") & vbCrLf & vbCrLf & " File Name:" &
vbTab & strFileName, vbOKOnly, "Stats"
End Sub



The Clipboard commands are commented out because whenever I run this, Excel
crashes, has to close down, asks to send an error report to MS, and I lose
any unsaved data.

I got these commands from a project I was working on in my Programming
Fundamentals class. When I looked these commands up in VB6's Object
Browser, it said that the command was from the VB Library. I went to
References to see what it was using (and their paths). The 2 I thought it
could be were "VB Objects & Procedures" and "VB Runtime Objects &
Procedures". I tried selecting these references in VBA by browsing to their
path. The path for VB O & P was fine and was able to use it okay. But the
path for VB Runtime O & P was "C:\WINDOWS\SYSTEM32\msvbvm60.dll\3". First,
how do I refer to "\3" of a .dll file. Second, when I tried refering to
"C:\WINDOWS\SYSTEM32\msvbvm60.dll" it gave me an error saying "Name
conflicts with existing module, project, or object library".

Any help with this would be greatly appreciated,

Conan Kelly
 
C

Conan Kelly

Jim,

Thanks for your help. That worked for what I need to do.

Thanks again,

Conan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top