• ベストアンサー
  • 困ってます

OutlookからExcelをひらく

いつもお世話になっております。 OutlookのマクロからExcelファイル(ファイル名="sample")を開くために以下のようなマクロを組みましが、 "実行時エラー'424'; オブジェクトが必要です。" というメッセージが出てエラーになってしまいます。 Workbooks.Open FileName:="C:\Documents and Settings\My Documents\sample.xls" ヘルプを見たのですがよくわかりませんでした。 Outlookのマクロを実行してExcelファイルを開くにはどのようにすればよいのでしょうか。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数5433
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

わたしが良く使うやり方を書きます。 まず、VbaEditerで「ツール」→「参照設定」→「Microsoft Excel XX object Library」にチェックをつける。 イベント中に Dim xlApp As Excel.Application Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True xlApp.Workbooks.Open ("C:\DocumentsandSettings\Myocuments\sample.xls") Set xlApp = Nothing これで試してみてはどうですか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

komkomgさん 試してみたところうまくいきました。また勉強になりました。 ありがとうございます。

関連するQ&A

  • EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる

    EXCELのVBAでマクロを使ってファイルを開こうとしている際、指定したファイルが存在しなかった場合、普通はマクロのエラーが出て「ファイルが存在しません」となりますが、指定したファイルが存在しなかった場合には、メッセージボックスを表示させ、そこで処理を中止させるか、または、その無いファイルの処理は飛ばして次のファイルの処理を行う用にさせることはできるでしょうか? Sub test1() Workbooks.Open Filename:="C:\Documents and Settings\001.xls (001が存在しない場合メッセージボックスを出しマクロを中止するか次の002を開くか選ぶ) Workbooks.Open Filename:="C:\Documents and Settings\002.xls End sub

  • エクセルVBA

    こんばんは! エクセルマクロ初心者です。 エクセルVBAについて教えてください! パス(?)を指定して、ファイルを開けてから実行する マクロを書きたいのですが、エラーになってしまいます。 Dim Filename as string (1)Workbooks.Open Filename:= "\D\MyDocument\●●.xls" (●●はファイル名) (2)Workbooks("●●").Activate (1)の部分は実行されて目的のファイルは開くのですが(2)でエラーになってしまいます。 どなたか教えてください! 以前までは、このマクロ実行できていたのですが、突然できなくなりました。 困ってます。

  • いつも大変お世話になっております。

    いつも大変お世話になっております。 エクセルvbaについてお聞きしたいと思います。 aとbのエクセルファイルがあります。 aにはsheet1・sheet2、bにはsheet3・sheet4があります。 aのファイルにコードを入力し実行させ、bのファイルを開いてbのSheet3を選択 したいのですが ”オブジェクトは、このプロパティまたはメソッドをサポートしていません。” と実行エラーがでます。 他のブックを開いて他のブックのシートをコントロールすることはできるのでしょうか? 皆さんのお力をお貸しください。 Private Sub aのファイルのマクロ() Workbooks.Open "C:\Documents and Settings\user\デスクトップ\b.xls" Workbooks("b.xls").Sheets3.Select End Sub

  • Excelでファイルを開くをマクロで行いたい

    マクロ初心者です "ファイルを開く"をマクロの記録で記録させると ChDir "C:\Documents and Settings\○○\△△\※※" Workbooks.Open Filename:= _ "C:\Documents and Settings\○○\△△\※※¥LotLog20070131.csv" Windows("●●●.xls").Activate End Sub と記録されます この中で 開きたいファイルネ-ム(上記ならばLotLog20070131.csv)を "●●●.xls"の どこかのセルを参照に開きたいのですが どうすれば宜しいのでしょうか?

  • エクセル2000VBAでファイルを操作したい

    いつもお世話になっています。 エクセルVBAで別のワークブックを参照したいので workbooks.open Filename:="C:my documents\***.xls" とすると、そのオープンするワークブックのTisWorkbookのWorkbook_Open()で実行している(.show)メニュー(ユーザーフォーム)が開いてしまいます。 このとき、Workbook_Open()を実行させないでワークブックを開く方法って、 なにかありますか? Shiftを押しながらファイルを開くとき、実行されませんよね?それをVBAでできるのですか? よろしくお願いします。

  • エクセルマクロでマクロをアクティブにしたくない

    エクセルのマクロをひとつの「マクロA」という名前で、データーファイルからセルに入っている内容などを呼び出しながらまくろAのシートにデーターを貼り付けながら作業をしています。 Workbooks.Open Filename:= _ "C:\Documents and Settings\owner\My Documents\マクロ.xls" Application.Run "マクロ.xls!マクロ" と記載すると、マクロXLSがアクティブになってしまいます。 その為記載に'ActiveWindow.WindowState = xlMinimized と入れたりするのですが、アクティブになるシートがマクロ以外にうまくいかないことがあるのです。 データーシートは、毎回データーが変わる関係で、DATA.xlsがAのときやBのときが発生します。

  • エクセルVBAでブックを開きたいのですが、

    エクセルVBAでブックを開きたいのですが、 アクティブシートを別のブックに移動させたいのですが、 まず、目的のブックを開く → 移動させたいシート名を右クリック → 移動またはコピー を選択 → 移動先ブック を選択  というふうにしようと思っていますが、 Workbooks.Open Filename:= _ "C:\Documents and Settings\YUMIKO\My Documents\YYYY.xls" のようにファイル名を入れると開くことができました。 が、   Workbooks.Open Filename:= _ "C:\Documents and Settings\YUUKORON\My Documents\Range("F1").Value.xls" のように、アクティブシートの セルF1にファイル名を入れて、開きたいのですが、どうしても開くことができません。いろいろ調べて試しましたが、無理でした。 基本的にマクロで記録で作っている初心者です。 回答よろしくお願いします。

  • VBA 他のPCでも使いたい

    エクセルVBA初心者です。 Workbooks.Open Filename: についてですが 「C:\Documents and Settings\たぬき\デスクトップ\どんぐり.xls」 を開くプログラムは 「C:\Documents and Settings\きつね\デスクトップ\どんぐり.xls」 を開きません。 例えば どんぐりエクセルのセルA1にPC名を代入して、それを利用して ファイルを開く方法とか ファイルの場所をファイル名から返して開く方法があれば教えて下さい。 仕事柄必要となっております。 分かり易くよろしくお願い致します。

  • VBA ファイルの開き方

    マクロでファイルを開くときに Workbooks.open FileName:="\c:=\My Documents\Book1.xls" のように記述しますが、この「Book1」にあたる部分を その日の日付(20090422)のようにするにはどうすれば良いのでしょうか? つまり、ファイル名のところに日付を入れたいのです。 よろしくお願いします。

  • excelで最初に開いたファイル名称を覚えておく様な処理は可能ですか?

    excelで最初に開いたファイル名称を覚えておく様な処理は可能ですか? 1.最初の処理 (1)A.xlsのファイルを開く (2)マクロ:2010.xlsのファイルを開く (3)マクロ:チェックのシートをA.xlsの明細のシートの前に追加 (4)マクロ:チェックのシート名称をコピーした日付と時間のシート名に変更 (5)マクロ:2010.xlsのファイルをディスクトップ上から削除 2.後から追加する処理 (6)B.xlsのファイルを開く (B.xlsは、A.xlsとは異なるフォルダを作成し、A.xlsの特定のセルの中身の名称でファイル名保存されます。名前が異なるだけでマクロの中身はA.xlsと同じ) (7)マクロ:2010.xlsのファイルを開く (8)マクロ:チェックのシートをB.xlsの明細のシートの前に追加 (9)マクロ:チェックのシート名称をコピーした日付と時間のシート名に変更 (10)マクロ:2010.xlsのファイルをディスクトップ上から削除 上記を対応する為に下記の様なマクロ((6)(7)の部分を抜粋)を設定しています。 '2010.xlsのファイルを開く(2010.xlsのファイルは適宜、ディスクトップにコピーされます) Workbooks.Open FileName:="C:\Documents and Settings\ID\デスクトップ\2010.xls" 'チェックのシートを現在のブックの明細の前にコピーする。 Windows("2010.xls").Activate Sheets("チェック").Copy before:=Workbooks(1).Sheets("明細") 単独でA.xlsやB.xlsのファイルが開かれている場合には、 上記の対応で問題ないのですが、A.xls、B.xls以外のexcelファイルが開かれていると、 実行時エラーが出てしまいます。 Workbooks(1)の部分で最初に開いたexcelのファイル名称を指定しているのが 影響しているのはわかるのですが、ここの処理をなんとかしたいというおもいです。 つまり、複数のexcelファイルが開かれていて、A.xlsやB.xlsのファイルを後から開いても エラーがでない様にするには、どの様な処理にしたらよいのか教えて頂きたく。 マクロを実行したexcelのファイル名を覚えておいて、その名前が(1)に置き換わる 様な処理が望まれる処理です。