• 締切済み

workbooks.openでフリーズ

excel2007で作成されたVBAが記述されているファイルですが、 excel2010で実行するとフリーズします。 内容的には、ある2つのファイル内容を参照し、比較するというコードなのですが、 F8で一行ずつ実行していくと、workbooks.openメソッドでフリーズしていることがわかりました。 参照ファイルをローカルに置いて実行するとフリーズせずに処理できますが、 参照ファイルがサーバーにある状態では無理です。 これは、サーバーへのアクセス権限の問題なのでしょうか? でも、excel2007で成功した同じユーザーで実行しても、フリーズとなります。 ネットでいろいろと検索し、openメソッドの前にDoEventsメソッドを記述してみましたがフリーズしました。 どなたか回避策がわかる方、教えてください。お願いします。

  • aris
  • お礼率86% (33/38)

みんなの回答

回答No.1

可能性として 2010 が 64bit だったりして・・・

関連するQ&A

  • IIS7.0での、Excel WorkBooks.Openが失敗します

    IIS7.0での、Excel WorkBooks.Openが失敗します。 IIS7.0でのExcel操作で困っております。 環境  Windows2008Server IIS7.0  ASP(.Netでは無い)  Excel Win2000SVで動作しているWebシステムのリプレースのため、Win2008SVで動作検証中です。 このプログラムは、サーバー上のExcelファイルを開き、このExcelをHTML形式で出力(保存)します。そして出力されたHTMLを画面に表示させます。 Set dObjExcelApp = CreateObject("Excel.Application") dObjExcelApp.WorkBooks.Open Excelファイル名 dObjExcelBook = dObjExcelAppActiveWorkbook   中略 dObjExcelBook.SaveAs HTMLファイル名 これを実行すると WorkBooks.Openがコード:1004、"WorkBooksクラスのOpenメソッドが失敗しました。" で、エラーとなります。 当初CreateObjectが"70"でエラーとなっていたのですが、DCOM構成でアクセス許可を付与することによりエラーを回避しました。 しかし、WorkBooks.Openメソッド実行エラーの原因、対策が分かりません。 (パス不正とかではありません。) 同じコーディングをしたVBプログラムは正常に動作します。 原因、対処方法、または代替案などご存知の方がいらっしゃいましたら、ご教示ください。 宜しくお願いいたします。

  • Workbooks.Open

    Set xlApp = CreateObject("Excel.Application") Set xlWbk = xlApp.Workbooks.Open("C:\Users\test".xlsx", , , Password:="0000") の部分でエラーが発生する時があります。 しかし毎回同じコードなのに エラーが発生する時としない時があります。 その違いが判りません。 エラーの内容は、 実行時エラー1004 workbooksクラスのOpenプロパティを取得できません。 です。 win8、オフィス2010です。 どういう意味のエラーなのでしょうか? 回避する方法を教えてください。

  • Excel・VBA Openメソッド実行時にファイル名を取得出来ません。

    いつもお世話になっております。 ネットワークコンピュータ上(共有フォルダにパスワードを設定済み)の Excelブックに対してWorkbooks.Open パス名 & ファイル名を実行すると 下記の実行時エラーが出てしまい開く事が出来ません。 パスワード無しの参照のみ共有にすれば開く事が出来るのですが Openメソッド実行時、または実行前に共有フォルダのパスワードをセットする 方法は無いでしょうか?自分が知る限りではExcelブックのパスワードの設定 はOpenメソッドのオプションに有るようなのですが共有フォルダに関しては 見つける事が出来ませんでした。 OS:Win98,95 Excel:97 ネットワークはTCP/IPを使用しています。 ご存知の方、どうか宜しくお願いします。 エラー内容  実行時エラー'1004':  'パス名\ファイル名.xls'が見つかりません。ファイル名および  ファイルの保存場所が正しいかどうか確認して下さい。  [ファイル]メニューの最近使用したファイルの一覧からファイルを開こうとしている場合は、  そのファイルの名前が変更されていないこと、移動または削除されていないことを  確認して下さい。

  • Sub Auto_Open() 実行されない

    Excel2003VBAについて教えてください。 あるBookから、VBAの”Workbooks.Open”で別のブックを開くように作ってあるのですが、開かれるBookのほうに”Sub Auto_Open()”で特定のシートをアクティブにするように作っています。 普通にBookを開くとSub Auto_Open()は実行されますが、”Workbooks.Open”では実行されません。 ”Workbooks.Open”で開いたときに、特定のシートがアクティブになればそれでよいのですが。 よろしくお願いします。

  • 「Workbooks.Open」の動作について

    いつも参考にさせてもらっています。 VBAで別のブックを開こうとして、  Workbooks.Open "WorkBook.xls"  Msgbox "開きました。" と記述しました。 ですが、「WorkBook.xls」ファイルは開くのですが 次のメッセージボックスが表示されません。 デバッグ実行すると、「Workbooks.Open」でファイルが開かれた後、 処理が終了されているみたいです。 どうしても原因がわからず、先に進むことができません。 どうすれば、ファイルも開き、メッセージボックスも表示されるのでしょうか? 皆様のお力をお貸し下さい。 お願いします。

  • エクセルのファイルオープン時の指定ファイル名について

    環境:Win2000 VB.NET2003 参照:Microsoft Excel 9.0 Object Library エクセルファイルを開くために、Workbooks.Openを使用していますが、引数にフルパスを指定すると正常にオープンできるのですが、相対パスを指定するとファイルが見つからずに開けないというエラーになってしまいます。 Workbooks.Openでは相対パスは指定できないのでしょうか?それとも、何か他の指定が合わせて必要なのでしょうか? 教えてください、よろしくお願いします。

  • IIS7.5 Excel ファイルオープンエラー

    ■現状 現在、WindowsServer2003、IIS6.0、Excel2003でaspのプログラムを、WindowsServer2008 R2、IIS7.5に移行しているのですが、 登録等の動作は問題なく稼動しているのですが、Excelファイルの出力で 『Workbooks クラスの Open プロパティを取得できません。』 とエラーが出力され、Exelファイルへの出力ができません。Excel2003/2010ともに同じです。 insXlsApp = Server.CreateObject("Excel.Application") insXlsBooks = insXlsApp.Workbooks insXlsBook = insXlsBooks.Open(strPAth & "blank.xls") Openのところでエラーになります。 ■環境 WindowsServer2008 R2 IIS7.5 ASP.NET2.0 Excel2003/2010 ■設定 web.config ・<identity impersonate="true"/> IISのアプリケーションループの設定では、 ・32bit → 有効 ・マネージパイプラインモード →クラシック ・プロセスID → ApplicationPoolIdentity DCOM設定 ・Microsoft Excel Applicationのプロパティで「セキュリティ」→「起動とアクティブ化のアクセス許可」→「カスタマイズ」で  IUSERに権限を付与。  ※「ID」タブを選択し、ユーザーから「このユーザー」を選択、実行したときに与える権限を持つユーザーとパスワードを入力してもダメでした。 フォルダ ・エクセルが保存されているフォルダに、IUSER,administrator,EvereOneにフル権限を与えてみてもダメでした。 このやり方は非推奨なのは知っていますが、サーバー、クライアント全てにエクセルは入っています。 サードパーティ等他のやり方が良いのは重々承知の上で質問しています。 色々調べ試してみましたが上手くいきません。 どなたかお知恵を貸してください。よろしくお願いいたします。

  • Openメソッドについて

    ブックAのSheet1にあるセルのデータをブックBのSheet1のセルにコピーするために、以下のようにOpenメソッドを使ったVBAを記述してみたのですが、エラーコード1004「指定されたファイルが存在しません」のようなエラーメッセージが出てきました。Openメソッドが使われている例を見ているとどうやらブックのあるフォルダを指定しているような感じがするのですが、Openメソッドは具体的に該当のブックのある場所を指定しなくてはならないのでしょうか??(私がVBAを記述するにあたり参考にしたインターネットのVBAを紹介するページでは、ブックのある場所を指定せず、私が記述したように直にブック名を入力していました。) お忙しい中申し訳ないのですが、どなたかご教授いただけると、とても嬉しいです!よろしくお願いいたします。 Sub ブックAのデータをブックBに() With Workbooks.Open("ブックA.xlsx")  .Sheets("Sheet1").Range("E8").Value = _ ThisWorkbook.Range("C2").Value End With End Sub

  • VBScript Excel Workbooks

    全く下らない質問で申し訳ございません。 あくまでも、興味があったので質問しているだけで、 以下のやり方でなくても、やりたいことが実現できることは 分かっているのですが、教えて頂ければ幸いです。 VBScriptで Option Explicit Dim x, y Set x = CreateObject("Excel.Application") Set y = x.Workbooks.Open("D:\Sample.xlsx").Worksheets(1) | x.Workbooks(1).Close x.Quit Set y = Nothing Set x = Nothing 普通は、 Set y = x.Workbooks.Open("D:\Sample.xlsx") Set z = y.Worksheets(1) として、 y.Close とする方が分かりやすいのは分かっているのですが、 あえて、勉強を兼ねて、上記のように記述しました。 私が知りたい疑問は、Excelのファイルを2つ開いた場合です。 Option Explicit Dim x, y, z Set x = CreateObject("Excel.Application") x.Application.DisplayAlerts = False x.Visible = False Set y = x.Workbooks.Open("F:\Sample.xlsx").Worksheets(1) Set z = x.Workbooks.Add().Worksheets(1) z.Range("A1").Value = y.Range("A1").Value x.Workbooks(1).Close x.Workbooks(2).SaveAs("F:\Test_02.xlsx") x.Workbooks(2).Close x.Quit Set z = Nothing Set y = Nothing Set x = Nothing このプログラムで、 Set y = x.Workbooks.Open("F:\Sample.xlsx").Worksheets(1) の行が無ければ、「x.Workbooks(1).Close」もなく、 その下の行は、 x.Workbooks(1).SaveAs("F:\Test_02.xlsx") x.Workbooks(1).Close となり、問題なく「Test_02.xlsx」ファイルが出来ていました。 ファイルを2つ開いたので、「Workbooks(2)」となる、 と思ったのですが、どうやら違うようです。 (「インデックスが有効範囲にありません」というエラーになります) 何度も言いますが、こんなことで悩む必要がないのは 分かっているのですが、何か気になります。 上記のやり方で、Excelのファイルを2つ開いている場合の 2つ目のファイルを閉じる方法を教えてください。 ホント、下らない質問で申し訳ございませんが よろしくお願い致します。 以上

  • サーバー上のブックを開けない時(エクセルVBA)

    ネットワーク障害などでサーバー上のエクセルブックが開けない時、かなり待たされてから次のメッセージが出ます。 実行時エラー'1004' 'Open'メソッドは失敗しました。'Workbooks'オブジェクト しかもその間、Ctrl-Breakも受け付けてくれません。 正確に待ち時間は計ったわけではありませんが、10分くらいでしょうか。 なんとかこれを回避して、早い時間にエラーメッセージを出してコントロールを戻すことはできないでしょうか? 以下のVBAでオープンしています。 Workbooks.Open Filename:=myFileName, Readonly:=True よろしくお願い申し上げます。