Discussion:
WORD macro that spits out a copy-pastable message box
(too old to reply)
s***@yahoo.com
2015-07-03 11:12:18 UTC
Permalink
Hello netizens,

I am very new to VBA. I would like to have a macro that prompts a user for a movie release year and then spits out the IMDB query URL, which will gave the highest rated movies in that year, with user rating between 6.9 and 10. I have taken a stab at the script, but it looks funny because I use the InputBox to spit out the URL. Naturally I first used MsgBox, but I could not copy-and-paste the output message in the box.

Kindly help.

Regards,
Sandeep

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Sub IMDB()
'
' Create IMDB query to retrieve the highest rated movies in a user-selected year, with user
' rating between 6.9 and 10
'
'
Dim sText As String
Do
sText = InputBox("Enter movie release year")
If (sText = vbNullString) Then Exit Sub

sText = InputBox("", "Copy and paste the URL in the form below", "http://www.imdb.com/search/title?at=0&languages=en%7C1&release_date=" + sText + "-01-01," + sText + "-12-31&sort=user_rating&title_type=feature&user_rating=6.9,10")
Loop Until sText = vbNullString
End Sub
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Auric__
2015-07-03 15:36:45 UTC
Permalink
Post by s***@yahoo.com
Hello netizens,
I am very new to VBA. I would like to have a macro that prompts a user
for a movie release year and then spits out the IMDB query URL, which
will gave the highest rated movies in that year, with user rating
between 6.9 and 10. I have taken a stab at the script, but it looks
funny because I use the InputBox to spit out the URL. Naturally I first
used MsgBox, but I could not copy-and-paste the output message in the
box.
Kindly help.
[snip code]

If you use the ClipBoard_SetData() function from this page (watch the
wordwrap):

http://stackoverflow.com/questions/14219455/excel-vba-code-to-copy-a-
specific-string-to-clipboard

...you can copy the URL straight to the clipboard:

Sub IMDB()
' Create IMDB query to retrieve the highest rated movies in a user-
' selected year, with user rating between 6.9 and 10
Dim sText As String
sText = InputBox("Enter movie release year")
'sanity checks included
If (sText <> vbNullString) And (sText > 1886) And _
(sText <= Year(Now)) Then
sText = _
"http://www.imdb.com/search/title?at=0&languages=en%7C1&release_date=" _
+ sText + "-01-01," + sText + _
"-12-31&sort=user_rating&title_type=feature&user_rating=6.9,10"
ClipBoard_SetData sText
MsgBox sText
End If
End Sub

(There are simpler ways to copy to the clipboard; the above URL discusses
some.)

Personally, I'd include an option for the ranks. Something like...

ratingRange = InputBox( _
"Enter the desired range of ratings separated by a comma, (e.g. 6.9,10).")
'...
sText = _
"http://www.imdb.com/search/title?at=0&languages=en%7C1&release_date=" _
+ sText + "-01-01," + sText + _
"-12-31&sort=user_rating&title_type=feature&user_rating=" & ratingRange
Loading...