プロが教えるわが家の防犯対策術!

EXCEL/VBAで、OUTLOOKのウインドを閉じる方法を教えて下さい。
OUTLOOKを立ち上げた状態で、EXCEL/VBAで下記のようにOUTLOOKのフォルダーを指定してウインドを表示していますが、
VBAで開いたウインドのみ閉じたいのですが、うまく行きません。
oApp.Quitだと元々立ち上げていたoutlookも含めて終了してしまいます。宜しく、お願いします。

Sub OL_TEST()
Dim oApp As Object 'OutlookのApplication オブジェクト
Dim myNameSpace As Object '名前スペース
Dim myFolder As Object 'フォルダー指定

Set oApp = CreateObject("Outlook.Application")
Set myNameSpace = oApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定
myFolder.Display '表示

A 回答 (2件)

oApp.explorers.Item(oApp.explorers.Count).Close


でいけるみたいです。
    • good
    • 0
この回答へのお礼

ご回答の通りで、出来ました。
素晴らしいです。
自分でも色々と試してみましたが、このコードは自分でいくら考えても分からないでしょうね。
何処で勉強されたのでしょうか。
OutlookのVBAのhelpでしょうか、もし良ければ教えて下さい。
ご回答有難うございました。

お礼日時:2010/03/04 23:17

><EXCEL/VBA>


ですよね。

1)VBE(Visual Basic Editor) の コードウィンドウ で [oApp] の部分を [右クリック] - [ウォッチ式の追加(A)] します。
 コード の進行に応じて、何某(なにがし)か、Outlook の『ウィンドウ に関する プロパティ』に変化が生じはしないだろうか、と考えた訳です。

2)[F8] キー を押下しながら、ステップ イン デバッグ します。
 「myFolder.Display '表示」の行まで来たら、ウォッチウィンドウ で [oApp] の前の「+」を クリック し、配下の プロパティ 等を一つずつ見ていきます。

3)この場合、闇雲に全部開いても、物によっては無数の星の中から探すようなことになってしまいますので、表示された「名前」を見て、(1)に書きました『ウィンドウ に関する プロパティ』に関連ありそうな「名前」だけを、「どこにあるかなぁ」と想像しながら一つずつ開いていきます。
 英語の センス も必要でしょうかね。

4)ちなみに、 [oApp] の直下には [AnswerWizard]・[Applicaion]・[Assistant]・・・と15個の「名前」が並んでいますね。
 ここで、幸いにも2番目の [Applicaion] を開くと、その直下に [Explorers] という「名前」があるではありませんか!
 これ、臭そうです。  (^0^)/

5)ということで、[oApp] - [Applicaion] - [Explorers] を開いてみますと...
 ありました!

6)[oApp] - [Applicaion] - [Explorers] - [Count] が開いている Outlook の数と合致しています。

7)[Item 1]・[Item 2]・[Item 3]・・・
 これですよ、これ!

8)これから先は、少々、経験と勘を要しますが。。。
 恐らく、今、開いた Outlook が、一番最後の Item、つまり
oApp.explorers.Count
番目の Item になるはずです。

9)従って、
oApp.explorers.Item(oApp.explorers.Count)
で、その『ウィンドウ』を名指しにできるのではないかなと考えました。

10)ご質問には、
>oApp.Quit
と書いていらっしゃいますが、
oApp.explorers.Item(oApp.explorers.Count).Quit
は、見るからにおかしいですし、実際、エラー になります。

11)それなら [Close] だろうと思って、
oApp.explorers.Item(oApp.explorers.Count).Close
とした次第です。

12)ですから、
>いける「みたい」です。
と書いたのでした。  (^凹^)

 とまぁ、ざっと、こんな感じですが、
>自分でも色々と試してみましたが、
>このコードは自分でいくら考えても分からないでしょうね。
 そうですね。
 材料無しでは考えつきませんし、実際「まぐれ」みたいなものです。

>何処で勉強されたのでしょうか。
>OutlookのVBAのhelpでしょうか
 キーポイント は [ステップ イン デバッグ] と [ウォッチ ウィンドウ] です。
 WEB検索 しても、なかなか見付からないときは、こうやって、地道に探すしか手がありませんものね。
    • good
    • 6
この回答へのお礼

再度のご回答有難うございました。
[ステップ イン デバッグ] と [ウォッチ ウィンドウ] について、理解できました。
また、とても丁寧に説明して頂き、本当に有難うございました。

お礼日時:2010/03/06 12:18

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A