• 締切済み

Outlook VBA ですでに開いているExcel ファイルを操作

Outlookで現在開いているメールの受信時間の情報を、既に開いているExcelのシート上にコピーしたく思っています。 OutlookのVBAで a=Application.ActiveInspector.CurrentItem.ReceivedTime で変数aに受信時間を格納する所までは出来たのですが、それを既に開いている例えば"mail.xls"という名前のExcelファイルのシートにコピーする方法がわかりません。  過去の質問や他のサイトで調べた結果、新しくファイル作成してそのファイルに表示させる方法はわかりましたが、既に開かれているファイルに対してはどの様に対応すれば良いのかが分かりません。 どなたか方法を教えて頂けますようお願い致します。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

リンク先のページの下の方に、既に起動しているIEの見つけ方と、操作方法が記載されていますので、エクセルに応用可能と思います。 http://www.ken3.org/vba/backno/vba156.html エクセルは"Excel.Application"で見つけられると思います。 http://dobon.net/vb/bbs/log3-10/5405.html OutlookのVBAは触った事もないので、ご参考まで。

37mada
質問者

お礼

mitarashi さん ありがとうございました。 紹介頂いたURLを参考にして下記のコードを書いて希望の結果が得られました。 Dim objExcel As Object, objWindow As Object Dim 受信日 As Date 受信日 = Application.ActiveInspector.CurrentItem.ReceivedTime Set objExcel = GetObject(, "excel.Application") objExcel.Workbooks("mail.xls").Worksheets(1).Cells(1, 1) = 受信日

関連するQ&A

  • EXCEL VBAで別ファイル作成

    エクセル97です。 エクセルファイル AAA.xls のすべてのワークシートのうち、セルA1に TRUE がはいっているもの、(枚数はそのときにより不定です。)のみをコピーして、別のエクセルファイルを作成したいのです。 その際、新しいファイルに貼り付けるのは書式と値のみで、シート名は 元ファイルのシート名と同じにしたいのです。 どのようなVBAを書けばよいかご教示ください。 (AAA.xls にはワークシート以外にグラフシートやダイアローグシートが入っています。)

  • <ACCESS VBA -> EXCEL>getObjectしたEXCELファイルのシートを指定したい

    ACCESSのVBAマクロでEXCELファイルを指定してデータを取得しようとしています。 GetObject("C:\ファイル名.xls", "Excel.Sheet") でEXCELファイルを取得するまでは良いのですが、そのファイルのシートを指定する方法がわかりません。 基本かもしれませんが、ご教示をお願いします。

  • エクセルVBAのoutlook操作について

    こんばんわ! http://www.ken3.org/cgi-bin/group/vba_outlook.asp を参考にエクセルVBAを用いてOutlookからメールをエクセルに出力しているのですが、一度エクセルに出力したメールをOutlookから消すことはできるのでしょうか? アドバイスや方法をお願いいたします。 ちなみにエクセル2003でやっています!

  • ExcelVBAでセルに入力された値をみて複数のファイルコピーするマクロ

    VBA初心者です。関連する質問はみたのですが、組み合わせが他と違い うまくできませんでした。 EXCELのマクロを使って、それぞれ格納場所が異なる2つのエクセルファイル(格納元D:\AAA\123A.xlsと格納元D:\BBB\123B.xls)をコピーして指定のフォルダ(格納先D:\ZZZ\)内へ2つファイルを保存したいのですが・・ Private Const cnsSrc = "D:\AAA\123A.xls" Private Const cnsDst = "D:\ZZZ\123A.xls" Sub COPY_Func() ' ファイルをコピー FileCopy cnsSrc, cnsDst End Sub まで考えたんですが 複数のファイルまでコピーさせることができませんでした。 また、それぞれのフォルダ内には○○○A.xlsと○○○B.xlsが複数あるため コピーするファイル名は選択させたく、sheet1のA1セルに入力された"123"を みて123A.xls123B.xlsをコピーさせたいのですが、可能でしょうか? 宜しくお願い致します。

  • VBAからEXCELの新規ファイルを作成する

    VB6.0 Excel2000を使用しています。 VBAからEXCELファイルを参照する方法は前回教えていただきましたが 新規にEXCELファイルを作成する方法がわからないので教えてください。 【やりたいこと】 ・ファイル名は、ダイアログボックスから入力され、フルパスで変数に  格納されています。 ・シート名は固定文字で指定します。 (↑ここまではできています) (↓ここからわかりません) ・セルの内容を編集したあと、指定のファイル名・シート名で保存したい よろしくお願いします。

  • エクセルVBAで、元になるファイルをコピーし、ファイル名を連続した日付

    エクセルVBAで、元になるファイルをコピーし、ファイル名を連続した日付としたいのですが、 ボタン一つで、ファイル名を、2010.1.1請求書.xls~2010.1.31請求書.xlsとして、 2010.1.1請求書のシート1のA1セルに、その日付2010.1.1を入力保存し、ファイルを連続作成する コードはどのようになるのでしょうか?  VBA初心者です。ご教授お願いします。

  • エクセルのVBAでOutlook Expressの操作

    エクセルのVBAでOutlook Expressの操作 顧客情報を管理する上で、メールアドレスの登録が非常に面倒です。 そこで、Outlook Expressで受信したメールアドレスを自動でエクセルに落としたいのですが、 やり方を教えて下さい。出来れば、VBAを使ってやりたいです… イメージしているのは、 (1)件名に「メールアドレス登録」と入力し、本文に名前を入力したものを送る。 (2)メッセージルールで自動振り分けをして、「メールアドレス登録」という件名のメールは1つのフォルダにまとめる。(これは出来ました) (3)エクセルのA列に名前、B列にアドレスをOutlook Expressから自動で入力する。(ここをVBAを使って自動で行いたい) こんな感じなのですが、宜しくお願いします。

  • VBA_フォルダ内複数のExcelファイルの集約

    Excel VBAに関する質問です。 特定のフォルダ内(例としてC:\folder1)の複数のExcelファイルにおける シート(例としてSheet1)内のセル範囲A2:I1000の情報をコピーし、 特定のフォルダ内に格納されたExcelファイル(例としてC:\tougou\tougou.xls)の シート(例としてTOUGOU)内のA2を起点に貼り付け処理をしたいのですが、可能でしょうか? <貼り付けイメージ> (例)特定のフォルダ内(例としてC:\folder1)のExcelファイル数が2つの場合 A2 B2 ・・・・・I2 ・ ・ ・ ・ ・ A1999・・・・・・I1999 A2~I1999の範囲にデータが集約される。 どうぞよろしくお願いいたします。

  • VBA で EXCELファイルをインポート

    VBAに詳しい方お助けください。VBAを使用して、データベースをつかってインポート(データベースファイルを開かずにデータの取り込み)を行いたいのですが良く分かりません。データベースは一つはCSVファイル、一つはXLSファイルです。取り込み先のEXCELファイルのSHEET1にCSVファイルのデータベース(SHEET1)、取り込み先のEXCELファイルのSHEET2にXLSファイルファイルのデータベース(SHEET1)とインポートするにはどのようなVBAの記述が必要ですか?色々と調べているのですがうまく行きません。EXCELは2003を使用しています。

  • Excel-VBA rangeプロパティの使い方について

    Excel-VBA rangeプロパティの使い方について VBA初心者です。いろいろ調べたのですが、分からないので教えてください。 ThisWorkbookのSheet1のA1セルに、aというファイルのaというシートの特定のセルの値をコピーしたいです。 コピーする値のセルは、ThisWorkbookで入力した値を基に変数で記述したいです。 例えば、ThisWorkbookのSheet1のC2セルに「D1」と記載していたとして、その値を変数として設定して、最終的にaというファイルのaというシートの「D1」セルをThisWorkbookのA1セルに貼り付けるのが目的です。 この場合の、下記のhensuu = の設定方法について、ご教授願います。 hensuu = ThisWorkbook.Sheets("Sheet1").Range(“A1”)= Workbooks(a).Sheets(a).Range(hensuu)

専門家に質問してみよう