Excel VBA 質問スレッド №2116 (解決済)

OutlookVBAで開いたエクセルブックが無くなる

投稿者 : 三幸太郎     投稿日時 : 2025/05/23(Fri) 08:27:44     OS : Windows 11     EXCEL : Excel 2021
お世話になります。
タイトルの通りなのですが、OutlookVBAのapplidcation_startupにて
Dim ApExc As New EXCEL.Application, wbpath As String
wbpath = "C:\Users\○○○\Desktop\B.xlsx"
ApExc.Workbooks.Open (wbpath)
ApExc.Visible = True
として同時にデスクトップのブックを開いてその最初のシートに
Application_NewMailExイベントを使って新着メールアイテムから送り主とボディーを転記しています。
やり方はイベントの引数をMAPIのgetItemFromIDメソッドにあて、開いたままのエクセルをgetObjectで取得して最終行に記録するというものです。
普通に動作して記録は進むのですが、本日は問題なかったのですが、先日は翌朝立ち上げた時、昨日は立ち上げし直した時にブックはデスクトップに存在するのに
エクセルがQuitになる前の画面にしかならず、ブック内容自体がどこかへいったかのような現象が起きます。
今は練習用なので消えても問題はないですが、仕事に使うようになったら閉じる前に他のブックにコピーする必要がありそうです。
この現象の原因は何で、もしどこかに存在するならどこを探せば良いのでしょうか?

スポンサーリンク
[返信 1] Re : OutlookVBAで開いたエクセルブックが無くなる
投稿者 : tek     投稿日時 : 2025/05/25(Sun) 07:04:12
■[質問] 三幸太郎さん(2025-05-23 08:27:44)の記事
> タイトルの通りなのですが、OutlookVBAのapplidcation_startupにて

>当掲示板について
>・Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
とありますので、別の板に移動することをお勧めします。

Excel VBAでの話ですが、
> Dim ApExc As New EXCEL.Application

よりも
Dim ApExc As Application
Set ApExc = New Application
と書いたほうが安全?と聞いたことがあります。

> 開いたままのエクセルをgetObjectで取得して

GetObjectで取得できるのは最初に起動されたExcelインスタンスのみです。
Bookなら取得できますが、そうしていますか?
Excel(やBook)をパブリック変数に入れて使ったほうが簡単かもしれません。

> もしどこかに存在するならどこを探せば良いのでしょうか?

私なら"C:"や"PC"まで探します。
何なら更新日時で探します。

[返信 2] Re : OutlookVBAで開いたエクセルブックが無くなる
投稿者 : 三幸太郎     投稿日時 : 2025/05/27(Tue) 20:20:03
outlookvbaの掲示板でズバリが無かったのでEXCEL絡みだからいいかなと思ったのですが、不快に思われてしまうとは思いませんでした。
大変失礼しました。


[返信 1] tekさん(2025-05-25 07:04:12)の記事
> ■[質問] 三幸太郎さん(2025-05-23 08:27:44)の記事
> > タイトルの通りなのですが、OutlookVBAのapplidcation_startupにて
> >当掲示板について
> >・Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
> とありますので、別の板に移動することをお勧めします。

> Excel VBAでの話ですが、
> > Dim ApExc As New EXCEL.Application

> よりも
> Dim ApExc As Application
> Set ApExc = New Application
> と書いたほうが安全?と聞いたことがあります。

> > 開いたままのエクセルをgetObjectで取得して

> GetObjectで取得できるのは最初に起動されたExcelインスタンスのみです。
> Bookなら取得できますが、そうしていますか?
> Excel(やBook)をパブリック変数に入れて使ったほうが簡単かもしれません。

> > もしどこかに存在するならどこを探せば良いのでしょうか?

> 私なら"C:"や"PC"まで探します。
> 何なら更新日時で探します。


当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-04 14:34:05 )
タイトルとURLをコピーしました