ここから本文です

This WorkbookとActiveWorkbookのちがい

eggmaroさん

2007/8/200:28:13

This WorkbookとActiveWorkbookのちがい

がわかりません。マクロについてです。
そう使い分ければ良いのですか

閲覧数:
20,612
回答数:
2

違反報告

ベストアンサーに選ばれた回答

nishukangoさん

2007/8/211:03:28

別のブックを開いてその内容を参照するなど複数のブックを扱う場合、
VBAが書かれているブックと処理の途中でアクティブになっているブックが異なる場合があります。
そのときThisWorkbookはその処理を記述したブック、AcitveWorkbookは現在アクティブに
なっているブックになります。
参照するだけだったらいちいちActiveにしなくてもいいんですが、たまにActiveにしないと
うまくいかないケース(ex. グラフを書くときとかだめだった覚えがある)もあります。

参考:
ActiveWorkbookとThisWorkbookプロパティ アクティブブックとマクロを実行しているブック
http://www.moug.net/skillup/nksw/nksw03-02.htm

質問した人からのコメント

2007/8/2 19:55:42

抱きしめる だいたいいつもひとつのブックしか開きませんから、
どっち使ってもいいってことですね
ありがとうございました

ベストアンサー以外の回答

1〜1件/1件中

red_fox63jpさん

2007/8/201:52:49

一つのブックしか使わない場合は どちらも同じものを指します
2つ以上のブックを使う場合はThisWorkbookはそのマクロが存在するブック
ActiveWorkbookは現在選択されているブックになります

"Sample1.xls"を用意しておき以下のマクロを実行すると
Sub Macro1()
dim wb1 as WorkBook, wb2 as Workbook
dim twb1 as WorkBook, twb2 as Workbook
Set wb1 = ActiveWorkbook
Workbooks.Open "sample1.xls"
Set wb2 = ActiveWorkbook
Set twb1 = ThisWorkbook
Set twb2 = ThisWorkbook
MsgBox " wb1=" & wb1.Name & vbCrLf & _
" wb2=" & wb2.Name & vbCrLf & _
"twb1=" & twb1.Name & vbCrLf & _
"twb2=" & twb2.Name & vbCrLf
wb1.activate
End Sub

 wb1=Book1
 wb2=Sample1.xls
twb1=Book1
twb2=Book1
といった具合になると思います

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。