プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっております。

ExcelのVBAで、application.inputboxで他のブックを選択したいのですが、どうも出来ません。下記のコードを実行して、InputBoxで、他のブックのセルを指定したいのですが、どうも現在開いている他のブックをマウスでクリック出来ないのです。
下記のコードは、『選択範囲を、InputBoxで指定した先にコピーしたい』という意図から、まずは、Msgboxに表示してみることにしたものです。
これは、何故なのでしょうか?
ご教示下さい。

'rngOriginalを、rngCopyToにコピーします。

Sub Test()
Dim rngOriginal As Range
Dim rngCopyTo As Range
Set rngOriginal = Selection.Cells 
Set rngCopyTo = Application.InputBox("コピー先を選択してください", , , , , , , 8)
With rngOriginal
MsgBox .Parent.Parent.Name & " " & .Parent.Name & "!" & .Address(, , Application.ReferenceStyle)
End With
With rngCopyTo
MsgBox .Parent.Parent.Name & " " & .Parent.Name & "!" & .Address(, , Application.ReferenceStyle)
End With
End Sub

A 回答 (2件)

こんにちは。


メニュー[ウィンドウ]でBookを切り替えるか、[整列]を使えば選択できます。
または下記の要領で。(エラー処理いれてません)

Sub Test2()
  Dim rngOriginal As Range
  Dim rngCopyTo  As Range
  
  Set rngOriginal = Selection
  Application.Dialogs(xlDialogActivate).Show
  Set rngCopyTo = Application.InputBox("select", Type:=8)
  MsgBox rngOriginal.Address(external:=True)
  MsgBox rngCopyTo.Address(external:=True)
  'rngOriginal.Copy rngCopyTo
End Sub
    • good
    • 1
この回答へのお礼

おかげさまで解決することが出来ました。素早い、的確な解説を頂き、深くお礼申し上げます。
VBAの知識を深める機会となりました。
本当にありがとうございました。

お礼日時:2007/12/06 11:36

Application.Inputboxの前で、他のブックをアクティブにしておけばいいのでは?



'------------------------------------------------
Sub Test()
Dim rngOriginal As Range
Dim rngCopyTo As Range
Set rngOriginal = Selection.Cells 

●●●Workbooks("他のブック.xls").Activate

Set rngCopyTo = Application.InputBox("コピー先を選択してください", , , , , , , 8)
With rngOriginal
MsgBox .Parent.Parent.Name & " " & .Parent.Name & "!" & .Address(, , Application.ReferenceStyle)
End With
With rngCopyTo
MsgBox .Parent.Parent.Name & " " & .Parent.Name & "!" & .Address(, , Application.ReferenceStyle)
End With
End Sub
'-------------------------------------------

外しましたらご容赦願います。
 
    • good
    • 0
この回答へのお礼

なるほど、コピー先が分かれば、先にアクティブにしておくということですね。ありがとうございます。

お礼日時:2007/12/06 11:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!