
Tips.Net > ExcelTips Home > Graphics > Using the Camera in VBA
Summary: The camera tool allows you to capture dynamic “pictures” of portions of a worksheet. If you want to use the camera tool from within a macro, you’ll need to apply the techniques discussed in this tip. (This tip works with Microsoft Excel 97, Excel 2000, Excel 2002, and Excel 2003.)
In other issues of ExcelTips you learn about using the Camera tool to capture dynamic pictures of different parts of your worksheet. You may have been wondering how to use the same sort of feature from within VBA. The documentation on the issue is not terribly clear, but the following macro shows the general process:
Sub DoCamera()
Dim MyPrompt As String
Dim MyTitle As String
Dim UserRange As Range
Dim OutputRange As Range
Application.ScreenUpdating = True
'Prompt user for range to capture
MyPrompt = "Select the range you would like to capture."
MyTitle = "User Input Required"
On Error Resume Next
Set UserRange = Application.InputBox(Prompt:=MyPrompt, _
Title:=MyTitle, Default:=ActiveCell.Address, Type:=8)
If UserRange Is Nothing Then End
On Error GoTo 0
'Copy range to Clipboard as picture
UserRange.CopyPicture
'Prompt user for range to paste to
MyPrompt = "Select the range on which you would like to paste."
MyTitle = "User Input Required"
On Error Resume Next
Set OutputRange = Application.InputBox(Prompt:=MyPrompt, _
Title:=MyTitle, Default:=ActiveCell.Address, Type:=8)
If OutputRange Is Nothing Then End
On Error GoTo 0
'Paste picture to output range
OutputRange.PasteSpecial
Selection.Formula = UserRange.Address
End Sub
This macro prompts you to specify a range to be copied, it then copies it to the Clipboard as a picture, and prompts you for where to paste it. When pasted, the final line of the macro is the key to making the "photo" dynamic, just as is done manually with the Camera tool. The PasteSpecial command actually pastes the picture, and the pasted picture remains selected. Setting the Formula property for the selection (the picture) results in the dynamic nature of the graphic.
Tip #2207 applies to Microsoft Excel versions: 97 2000 2002 2003
Save Time! ExcelTips has been published weekly since late 1998. Past issues of ExcelTips are available in convenient ExcelTips archives. Have your own enhanced archive of ExcelTips at your fingertips, available to use at any time!
Check out ExcelTips Archives today!
Want to make Excel do even more? The way is easy when you know how to use macros. This great e-book makes it easy. (more information...)
Ask an Excel Question
Make a Comment
ExcelTips FAQ
ExcelTips Premium
Beauty Tips
Bugs and Pests Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Money Tips
Organizing Tips
Pet Tips
Word2007 Tips
WordTips
Advertise on the
ExcelTips Site