- ベストアンサー
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
- みんなの回答 (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
その他の回答 (1)
- onlyrom
- ベストアンサー率59% (228/384)
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 '------------------------------------------- 外しましたらご容赦願います。
お礼
なるほど、コピー先が分かれば、先にアクティブにしておくということですね。ありがとうございます。
お礼
おかげさまで解決することが出来ました。素早い、的確な解説を頂き、深くお礼申し上げます。 VBAの知識を深める機会となりました。 本当にありがとうございました。