• ベストアンサー

VBAでエクセルファイルをオープンした際、異常現象

こんにちは。 エクセルVBAで、エクセルファイルを連続して100本あまりを「オープン、データ取得(200k程)、クローズ」と単純な処理中、タスクバー内のデスクトップ切り替えボタンを押すと、スタートアップ内に登録されているアプリケーションが全て最小化状態でデスクトップ上に現れてしまいます。 デスクトップ切り替えボタンを押すタイミングとオープンが重なった時に発生している様ですが、こんな事ってあるのでしょうか? XP、2000でしか試していませんが、両方とも現象がでます。 エクセルは2000です。 困っています。すみませんが御教えください。

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

  • ベストアンサー
  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.2

多分、Excel の仕様および制限の問題かと思われますが 詳細は、下記URLから Excel の仕様および制限 を参照してください。 規定は、3sheetになっています。とのことです。 < ブックのシート 使用可能メモリに依存 (既定では 3) > < ブレークを貼ると上手く動作 > は、メモリが、一時的に開放されるから? と思われます。 追加: < シートは10セル程度を使用して各セルに10文字程度の文字列 > は、効率的でないですね。 どんな理由にせよ、100あまりのシートを扱うのは、マニュアルで、 開いて 書くのも 見るのも いやになっちゃいますね。 いったい、だれが、input して だれが、評価するのでしょうか??。 データベースを作成するのなら、もっと データの配置を考え直したら どうでしょうか??。 EXCEL 2007 なら ワークシートのサイズ 1,048,576 行、16,384 列 も使用出来るのに。

参考URL:
http://office.microsoft.com/ja-jp/excel/HP100738491041.aspx?pid=CH101030621041
noname#105217
質問者

お礼

了解です、アドバイスを頂き、全面修正する決心が付きました. 御付き合いいただき、有難う御座いました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

エクセルファイルを連続して100本あまりを「オープン、データ取得(200k程)、クローズ」と単純な処理すれば、当然でしょう。 リソースとか、メモリーとかが不足してしまいます。 なぜ、そんなに多くのファイルを続けて開く必要が、あるのか解りません。

noname#105217
質問者

補足

状況説明が曖昧ですみません。1本のBookをオープンし、Book内の100あまりのシートに対してリード処理を行っています。リード後、Bookをクローズしています。シートは10セル程度を使用して各セルに10文字程度の文字列が書いてあります。そのデータをグローバル変数に読み込み、変数内から「あるデータ」を検索しています。 現象はマウスクリックによるタスクバー内のデスクトップ切り替えボタンを押した時に発生しますが、現象が簡単に発生する様に、「オープン、リード、クローズ」の直後にデスクトップを切り替える関数、CreateObject( shell.aplication ).ToggleDesktopを入れて、試してみました。 ・リード処理をやらずにオープン、クローズしただけでも発生しました。 ・オープン、クローズ後にブレークを貼ると上手く動作します。 オープンするのはBookのみなので、リソース不足、メモリー不足は考えづらく、他の原因を見つけています。 ※VBAを始めて日が浅く、見落としがあるかもしれません。 ひきつづき、アドバイスが頂ければ、幸いです。 宜しく御願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルファイルを綺麗に常駐

    カレンダーのようにエクセルファイルをデスクトップに常駐させたいのですが、 エイリアスを作ってスタートアップに登録しただけではタイトルなどいろいろ残って いかにもエクセルという感じで表示されますよね。 それをVBAのフォームが表示されているかの様にシンプルにできますか? あとタスクバーの表示もなくしたいのですが。 できればトレイの方に表示させたいです。

  • Excel VBA Auto_Openについて質問です。

    Excel VBA Auto_Openについて質問です。 A.xls Sub Auto_Open() Application.OnKey "{RETURN}", "ENTER_Key" Application.OnKey "{ENTER}", "ENTER_Key" End Sub でENTERキーでセルを任意の場所に動かしたいと考えています。 ENTER_Key()でうまく動かす事は出来たのですが、Auto_Openが止まらず、Excelを落とさずに、違うファイル(B.xls)を開いてA.xlsをクローズしてもB.xlsでENTERを押すと、エラー1004となってしまいます。 個人的にはAuto_Openが動いてしまっている感じがします。 エラーがでるので同コードをWorkbook_open()に移したのですが、今度は「マクロが使用できないか、無効になっている・・・」の画面になります。 原因や対策、またはENTERキーでセルを任意の場所に動かす方法等のアドバイスよろしくお願いします。 ちなみに、セル動きは1回目は1行下がり、2回目は右に4つ移動です。 このルーチンは出来ていると思います。 それではよろしくお願いいたします。 m(_ _)m

  • VBAでエクセルからエクセルのファイルを開くには?

    D:\に db1.mdb Book1.xls があります。 db1.mdbのフォームのコマンドボタンをクリックして Book1.xlsを開きたいのですが VBAコードをご教授いただけますか? (マクロではなくVBAコードが知りたいです) エクセルからエクセルのファイルを開くなら Workbooks.Open ファイルのフルパス で出来ました。 ご回答よろしくお願いします。

  • Access→Excelを起動した際の挙動について

    Access2000VBAの件で質問です。 このたび、OSをXPからVistaにVerUpしまして、AccessVBAからExcelブックをオープンした際に、Excelの挙動に異変が… 具体的には (1)XP :エクセルが最前面に起ち上がる (2)Vista:エクセルがタスクバーに最小化した状態で起ち上がる(で、オレンジ色に点滅する) と、OSによって挙動が違うのですが、なんとかXP側の挙動に合わせたいです。 実現する方法は無いでしょうか? 注意事項としては以下のとおりです。 ・レジストリは変更できない ・Excel側にマクロを仕込んでもOK 要件としては、起動したエクセルがタスクバーに最小化されずに、デスクトップの最前面に表示されればOKです。 皆様のアイディアをお待ちしております。 よろしくお願いします。

  • EXCEL VBAのフォームについて

    EXCEL VBAでフォームを表示したときに、最小化ボタンを表示させることは出来ないのでしょうか。 通常、フォームを表示させると、右上にXのボタンのみ表示されますが、通常のWindowsの画面の最小化ボタンを表示させる方法が、判りません。 この機能は、EXCEL VBAには実装されていないのでしょうか。また、最小化ボタンでなくてもかまいません。要は、やりたいことは、表示されているフォームを一時的に最小化する為に、その機能を実装したいと言うことです。ご存じのかたおりましたら、教えて下さい。 当方の環境はwindows-xp excel-2000です。

  • (Excel)VBA ファイルパスからファイル名を求める

    Excel97のVBAで  f-name = Application.GetOpenFilename() とするとf-nameにはオープンしたファイルのパスを含めたファイル名が代入されます。 これをそのまま  Workbooks(f-name).close とすると、パス部分が余分なのかエラーになります。 そこで、このf-nameからファイル名(ブック名)だけ切り出す方法があれば教えてください。 もしくはこのオープンからクローズまでの流れとして良いやり方があれば教えてください。

  • エクセルファイルをオープンしたときの再計算について

    エクセルファイルをオープンすると自動的に再計算がされます。VBAを使って、Workbook_Open()で、再計算を止めると、当然、ブックを開いた時全てで再計算が停止してしまいます。 で、質問ですが、あるブックから他のブックを開いた時には、再計算を行なわない(あるブックにVBAを組み込んで・・(イベントは、ボタンにからめてもok!)にして、手動で他のブックを開いた時は、再計算を行なうようなことが出来るのでしょうか? VBA初心者の僕として、精一杯考えたのは、親となるブックから、他のブックを開いた時に、他のブックのWorkbook_Open()イベントが始る前にWorkbook_Open()を書き込めればできると思うのですが?そんなこと無理なのでは?って思います。どなたか?詳しい方いませんでしょうか?宜しくお願い致します。

  • ExcelのVBAでアクセスファイルをopen

    エクセル2002(win)のVBAについて質問します。 Workbooks.OpenDatabase Filename:= _ \file.mdb, CommandText:=Array( _ "table1"), CommandType:=xlCmdTable というコマンドでaccessのファイルを開きたいと 思っています。しかしアクセスのファイルには パスワードが設定されていて、 「データベースパスワード」というパスワード 入力のダイアログが表示されます。 今は、事前にパスワードをクリップボードに コピーしておき、CTRL+Vでペーストして、「OK」を 押しているのですが、このペースト+OKの 作業を自動化することはできないでしょうか? 試しにVBA中の上記openコマンドの直後に Application.SendKeys "^V" を記入してみたのですが 動きませんでした。 以上よろしくお願いいたします。

  • エクセルマクロでファイルオープンでシートカットが使えない

    エクセルマクロでファイルオープンでシートカットが使えない エクセルのVBAマクロについて教えて下さい。 ”Application.GetSaveAsFilename”にてファイルを指定して、”Workbooks.OpenText Filename”にてファイルをオープンするときに、”Application.GetSaveAsFilename”にて指定したファイルがシートカットの時にエラーで停止する。 もし、”Application.GetSaveAsFilename”が実際のファイルの場合には、エラーで停止しない。 ■実際のVBA aFile = Application.GetSaveAsFilename(InitialFileName:=TaskF & "\" & "*.xls", FileFilter:="Excel(xls)ファイル (*.xls),*.xls") Workbooks.OpenText Filename:=aFile  ←左記の箇所でエラー停止する。

  • Office2010のVBAファイル自動オープン

    VBAの自動オープンで対象ファイルの開き方によって VBAが正常に動かないので質問させt下さい。 ネットワーク上のサーバーである AD-1から開くのとネットワークドライブPから開くのとでは Excelの名前の管理機能が動作しません。 Private Sub Workbook_Open() Workbooks.Open Filename:= _ "\\ad1\共通\aaaa.xlsx" Worksheets("Sheet1").Activate と Private Sub Workbook_Open() Workbooks.Open Filename:= _ "P:\共通\aaaa.xlsx" Worksheets("Sheet1").Activate 両方とも稼働させる方法はあるのでしょうか? よろしくお願いします。 End Sub

このQ&Aのポイント
  • 印刷がA4横半分にしかされないという問題が発生しています。原因や解決策について詳しく教えてください。
  • 対象製品はブラザーのDCP-J4225Nです。A4縦に印刷したいのに印刷が横半分になってしまうというトラブルです。
  • 使用環境はWindows11で、無線LANに接続されており、電話回線はひかり回線です。関連するソフト・アプリは特にありません。
回答を見る