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 '表示
No.1
- 回答日時:
oApp.explorers.Item(oApp.explorers.Count).Close
でいけるみたいです。
ご回答の通りで、出来ました。
素晴らしいです。
自分でも色々と試してみましたが、このコードは自分でいくら考えても分からないでしょうね。
何処で勉強されたのでしょうか。
OutlookのVBAのhelpでしょうか、もし良ければ教えて下さい。
ご回答有難うございました。
No.2ベストアンサー
- 回答日時:
><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検索 しても、なかなか見付からないときは、こうやって、地道に探すしか手がありませんものね。
再度のご回答有難うございました。
[ステップ イン デバッグ] と [ウォッチ ウィンドウ] について、理解できました。
また、とても丁寧に説明して頂き、本当に有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBA初心者です。 2 2022/10/10 11:52
- その他(Microsoft Office) VBA メール送信済で実行されるはずが、実行されない時があります。 2 2023/02/02 14:05
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法 8 2022/08/08 07:50
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
VBAでOutlookを終了させたい ExcelVBAで既に起動されているOutlookを終了させる
Visual Basic(VBA)
-
アウトルックが起動しているかどうかを取得するには?
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
5
Application.ActiveInspectorでエラーがでます。
Visual Basic(VBA)
-
6
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
7
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
8
Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを
Visual Basic(VBA)
-
9
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
10
(Excel VBA)and,orについて
Excel(エクセル)
-
11
VBAで二重起動を防止したいのですが、
その他(Microsoft Office)
-
12
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
13
エクセル UserForm 呼び出しでフリーズしてしまいます
その他(Microsoft Office)
-
14
VBA エクセル メール送信 ハイパーリンクの貼り方
その他(Microsoft Office)
-
15
アウトルックvba 差出人を指定したい
PowerPoint(パワーポイント)
-
16
vbaから他のアプリを終了
Visual Basic(VBA)
-
17
エクセルVBAでアウトルックメールの差出人変更
Excel(エクセル)
-
18
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
19
ExcelVBAによりOutlook2007のグローバルアドレス一覧から情報を取得するマクロ
Excel(エクセル)
-
20
VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのシート上に別のシー...
-
Javascript_submit()完了後に処...
-
ウィンドウの2重起動を防止したい
-
VBの画面で、全ウィンドウを一...
-
子ウィンドウから親ウィンドウ...
-
デスクトップ画面を4分割するには
-
VBAで任意のウインドウのサイズ...
-
親ウィンドウから開いた子ウィ...
-
孫ウインドウを閉じたら親をリ...
-
サブウィンドウからメインウィ...
-
ブラウザの×ボタンを効かなくす...
-
テーブルの<trでウィンドウAを...
-
親ウィンドウと子ウィンドウの...
-
<EXCEL/VBA> OUTLOOKのウインド...
-
別フレームのページを更新させたい
-
リンク時、親ウインドウを最前...
-
助けてGmailでボタン表示が消え...
-
ウィンドウ名からウィンドウオ...
-
新しいウィンドウを開かない設定
-
インタネットからPDFファイルだ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのシート上に別のシー...
-
Javascript_submit()完了後に処...
-
VBAで任意のウインドウのサイズ...
-
ウィンドウの2重起動を防止したい
-
window.Openをモーダルにできま...
-
<EXCEL/VBA> OUTLOOKのウインド...
-
ウィンドウ名からウィンドウオ...
-
VBの画面で、全ウィンドウを一...
-
子ウィンドウの存在確認
-
初心者javascript グーグルクロ...
-
インタネットからPDFファイルだ...
-
親ウィンドウから開いた子ウィ...
-
子ウィンドウより親ウィンドウ...
-
1クリックでモーダルを開いてか...
-
子ウィンドウを常に手前表示、...
-
ポップアップと作業ウィンドウ...
-
IEでのみ発生するJavaScriptエラー
-
ブラウザ(IE)からエクスプロー...
-
JavaScriptで指定Windowを最大...
-
リンク時、親ウインドウを最前...
おすすめ情報