Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5420 / 13644 ツリー ←次へ | 前へ→

【50895】マクロ実行中にブックを指定するには カド 07/8/21(火) 22:01 質問[未読]
【50897】Re:マクロ実行中にブックを指定するには ぱっせんじゃー 07/8/21(火) 22:11 発言[未読]
【50908】Re:マクロ実行中にブックを指定するには カド 07/8/22(水) 6:17 質問[未読]
【50911】Re:マクロ実行中にブックを指定するには ぱっせんじゃー 07/8/22(水) 7:29 発言[未読]
【50913】Re:マクロ実行中にブックを指定するには カド 07/8/22(水) 8:10 お礼[未読]

【50895】マクロ実行中にブックを指定するには
質問  カド  - 07/8/21(火) 22:01 -

引用なし
パスワード
   マクロがブック1に書かれていて、すでにブック2、ブック3、・・・を
開いています。
マクロを実行中に、
ブック2のセルA1に対して処理したいときは、そのセルを
クリックすることで、処理するセルを指定し、
ブック3のセルA10に対して処理したいときは、そのセルを
クリックすることで、処理するセルを指定できるようにしたいのです。

どのようなコードを書けば実現できるのでしょうか?
お分かりの方どうか教えてください。お願いします。


ブック2や3の名前はいつも同じとは限りません。

【50897】Re:マクロ実行中にブックを指定するには
発言  ぱっせんじゃー  - 07/8/21(火) 22:11 -

引用なし
パスワード
   >ブック2のセルA1に対して処理したいときは、そのセルを
>クリックすることで、処理するセルを指定し、

「そのセル」とはブック2のセルですか?
ブック1のセルですか?

また、ブック2、ブック3はどのようにして開きましたか?

Set wb2 = Workbooks.Open("ブックのパス")

のようにしてブックを起動したら、
wb2.Worksheets(1).VCells(1,1)〜
のように変数で制御できます。

【50908】Re:マクロ実行中にブックを指定するには
質問  カド  - 07/8/22(水) 6:17 -

引用なし
パスワード
   ▼ぱっせんじゃー さん レスありがとうございます。

>>ブック2のセルA1に対して処理したいときは、そのセルを
>>クリックすることで、処理するセルを指定し、
>
>「そのセル」とはブック2のセルですか?
>ブック1のセルですか?

ブック2のセルです。


>また、ブック2、ブック3はどのようにして開きましたか?

マクロを起動する前に手動で開いてあります。

> Set wb2 = Workbooks.Open("ブックのパス")
>
>のようにしてブックを起動したら、

起動するブックのパスが毎回決まっているわけではないので、
事前に手動で開いておいて、マクロを起動させてから
処理するブックのセルを指定できるようにしたいのですが。。。

【50911】Re:マクロ実行中にブックを指定するには
発言  ぱっせんじゃー  - 07/8/22(水) 7:29 -

引用なし
パスワード
   てっとり早いのは、リストボックスなどに
同じインスタンスで起動しているブック
の一覧を取得して、リストで選択したブック
に対して処理、でしょうか。


'ブックの一覧取得
Private Sub CommandButton1_Click()
Dim wb As Workbook
 For Each wb In Workbooks
  Me.ListBox1.AddItem wb.Name
 Next
End Sub

'選択したブックに対して処理
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim wb As Workbook
Set wb = Workbooks(Me.ListBox1.List(Me.ListBox1.ListIndex))
MsgBox wb.Name
End Sub

ただ、↑では各ブックのアクティブセルは取得できません。
アクティブセルに対して処理を行いたいなら、↓のような
感じになります。

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim wb As Workbook
 Set wb = Workbooks(Me.ListBox1.List(Me.ListBox1.ListIndex))
 wb.Activate
 MsgBox wb.Name & vbCrLf & ActiveCell.Address
End Sub

【50913】Re:マクロ実行中にブックを指定するには
お礼  カド  - 07/8/22(水) 8:10 -

引用なし
パスワード
   ぱっせんじゃー さん 回答ありがとうございます。

なるほどこういう方法を取るのですね。
イメージ湧いてきました。

5420 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free