• ベストアンサー

ExcelのVBAで、application.inputboxで、開いている他のブックを選択できません。

いつもお世話になっております。 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

質問者が選んだベストアンサー

  • ベストアンサー
  • pauNed
  • ベストアンサー率74% (129/173)
回答No.1

こんにちは。 メニュー[ウィンドウ]で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

Adina
質問者

お礼

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

その他の回答 (1)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.2

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 '------------------------------------------- 外しましたらご容赦願います。  

Adina
質問者

お礼

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