• ベストアンサー

Excel2010でマクロが止まる

Excel2003で作成したマクロがExcel2010で使えません。 内容は任意のフォルダ内にある同じフォーマットの複数のファイルを1ファイルづつ開いては別の1つのファイルのシート毎にコピーしていくマクロなんですが、21個目のファイルを開こうとした際にループが止まってしまいます。 どなたか解決方法をご存知でしたらご教授願います。

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

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.2

繰り返し処理の中に DoEventsを1~数個程度追加して、システムが作業を続けていけるようにしてください。 (ファイル読み込みの直後またはコピーの直後がいいと思います。)

conmas_1995
質問者

お礼

教えて頂きました通り、ファイルオープンの後にDoEventsを入れてみたところ、ループが止まる不具合は改善されました。 処理速度の低下も懸念されましたが、殆んど問題ありませんでした。 本当に助かりました。 ありがとうございました。

conmas_1995
質問者

補足

ご教授、ありがとうございます。 早速試してみます。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

1ファイルづつ開いていくブックは作業中開きっぱなしですか? それですと、メモリが足りなくなっている可能性があります。 そうで無いならソースを見ないと何とも言えません。

conmas_1995
質問者

お礼

ありがとうございました。 無事に解決する事が出来ました。 よろしければ、また次回もよろしくお願い致します。

conmas_1995
質問者

補足

ご教授、ありがとうございます 開いていくファイルは別のファイルのシートへコピーが完了後、閉じています。 マクロの内容は下記の様な感じです。 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ' ファイルフォルダ内の先頭のファイル名の取得 strFILENAME = Dir(strPATHNAME & cnsDIR, vbNormal) ' フォルダ内のファイルを全て開くまで繰り返す Do While strFILENAME <> "" ' (4) ' Excelファイルのみをピックアップ If Right(strFILENAME, 3) = "xls" Or Right(strFILENAME, 3) = "XLS" Then Workbooks.Open Filename:=strPATHNAME & "\" & strFILENAME 'フォルダ内のExcelファイルを開く Call DATA_COPY(strFILENAME) 'データコピーへ Else GoTo NXT_File: End If Windows(strFILENAME).Activate ActiveWorkbook.Close SaveChanges:=False 'Excelファイルを閉じる NXT_File: ' 次のファイル名を取得 strFILENAME = Dir() ' (6) Loop ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 上記構文中の”Workbooks.Open Filename:=strPATHNAME & "\" & strFILENAME ” の所で止まってしまいます。 よろしくお願い致します。

関連するQ&A

  • 共有フォルダのExcel2003で作成したマクロボタンがExcel20

    共有フォルダのExcel2003で作成したマクロボタンがExcel2010で無効になっている 別のパソコンの共有フォルダにあるExcel2003で作成したシートに貼り付けてあるマクロのボタンを押しても反応がありません。通常マクロのあるExcelファイルを開くとメニューの下に表示される「コンテンツを有効にする」も表示されません。ファイルをコピーし、自身のデスクトップなどに貼り付けると「コンテンツを有効にする」が表示されるのですが。 共有フォルダのマクロが動かないのはExcel2010の仕様なのでしょうか?

  • Excel2007 マクロ 複数シートの作成

    Excel2007 マクロ 複数シートの作成 2つのファイルを使用します。 AファイルにBファイルの情報を反映して、会社ごとにシートを作成します。 AファイルとBファイルの画像を添付します。 どのようなマクロを作成すればよいのか教えてください。 よろしくお願いいたします。

  • EXCEL2002のマクロについて

    EXCEL2002のマクロについて教えて下さい。 元々はEXCEL97で作成したファイルなのですが、EXCEL97、2000上では不具合はないのですが、2002になるとシート全体が選択された状態で画面が固まったようなメモリ不足のような状態に陥ってしまいます。ちなみにマクロ処理はオープン時に行っています。 ================================================ Workbooks("ファイル名").Sheets("シート名").Select ================================================ 上のようなシート全体を指定する部分が原因らしく、この命令(複数)をコメントでつぶすと正常に処理されます。 (上記命令をコメントでつぶしているため一部の処理は未処理) 原因はEXCEL2002の不具合でしょうか。パッチが出ていたりするのでしょうか。 何度もシートを選択しているのが悪いのでしょうか?? しかし97、2000では問題ありませんでした。 2003ではほかの命令を使用しなくてはいけないのでしょうか?? わかる方教えてください。宜しくお願い致します。

  • WinXP/Excel2002 でマクロ初級者です

    現在、仕事でexcelファイルAに、シート1枚につき1日分のデータを入力しています。 sheet1⇒7/1、sheet2⇒7/2、という風に。 その入力したデータを、1週間ごとにクライアントに報告するため、 別のexcelファイルBの1sheet内に決まったフォーマットにて、 手入力で入力しています。 ファイルAの各シートの中の決まった複数のセルの値をコピーして、 ファイルBの各シートの中の決まった複数のセルにそれぞれ貼り付ける作業を マクロを組んでボタン1つで実行したいと思っているのですが、 そのようなことは可能でしょうか?また、上記のマクロを以下の条件のもとで可能ですか? ・ファイルAとファイルBの格納場所は、同じサーバ内の別のフォルダ内 に保管されています。 ・マクロ実行する際、それぞれのファイルA,Bをその都度起動しないで、 ファイルAの指定したセルの値をファイルBの指定したセルへ反映したいです。 ・ファイルCにマクロボタンをつけてマクロを組み、実行したいので、マクロ実行時には、  ファイルCだけ、その都度起動したいです。 ・そのファイルCの保管場所は、ファイルBと同じフォルダ内に入れたいです。 例) Aの格納場所:\\ServerA\C_社内\週報\7月\週報(7月第1週).xls Bの格納場所:\\ServerA\C_社内\日別集計\7月\週報(7月第1週).xls Cの格納場所:\\ServerA\C_社内\週報\7月\週報マクロ.xls 説明が分かりにくくてすみません。 ご教授のほど宜しくお願いいたします。

  • 【Excel VBA】1つのファイルにまとめる方法

    1つのフォルダの中に複数のExcelファイルが保存されています。 seat1だけを1つに集めたExcelファイルを新規で作成したいです。 ※シート1をどんどん追加させるイメージです。 ※フォルダの中に入っているExcelファイル数は毎月変わります。 手順(1)フォルダに入っているExcelシートを開く 手順(2)sheet1を【シートの移動またはコピー】新規BOOKにコピー 手順(3)フォルダに入っているExcel分繰り返す。 手順(4)シート名を変更する。    どういう風にVBAコードを記入すればいいかわからないので教えていただきたいです。どうぞよろしくお願いいたします。

  • 一枚ずつ印刷用のマクロに複数枚設定したい

    一枚ずつ印刷用のマクロに複数枚設定したい。マクロ初心者です。Excel2007のマクロシー トを使っています。作成者は他人ですので、質問ができません。複数のシートからなるExcelファイルで、シート1に入力したシーケンス番号を2のシートのマクロを起動してポップアップに入力すると、シート1の内容が反映された印刷用のフォーマットが1枚ずつ作成されるマクロがあります。シーケンス番号は200ほどあり、ひとつひとつ設定していると時間がかかるため、シーケンス番号の範囲を指定するなどして、印刷を一気に行う方法はありませんでしょうか?質問等に不備がございましたらお知らせください。よろしくお願いいたします。

  • Excelのマクロについて

    現在、Excelのシートで野球の成績表を作成しているのですが、 フォーマットを変えようと思っています。そこで まず、表紙画面からチームの成績が書いてあるExcelファイルを選択し これをマクロで新しいフォーマットのExcelファイルに変換します。 ここで新しく作成したExcelファイルにもマクロをつけたいんですけど その場合どうすればよいでしょうか? 宜しくお願いします。

  • マクロを使用したExcelファイルをWinとMac双方で使用するには?

    WindowsのExcel2003で作成したマクロを含むファイルを共有フォルダに置き、MacのExcelでも使用しようとしたところマクロが正常に機能せず使い物になりません。Winで作成したマクロはExcelでは使えないものなのでしょうか?何か方法があるのでしょうか? 複数のユーザー(Macユーザーも含む)で共有して使用したいので解決したいのです。

  • 【Excel365】マクロを削除するマクロ

    特定のシート(仮にAとします)に添付画像のマクロ(別のマクロを実行するマクロ)を組み込んであります。 シートAをコピーしてシートBを作成し、値コピー・行削除などいろいろ編集した後にxlsxとして保存するという作業をしています。 しかし、シートBにも画像のマクロが組み込まれたままなので、1行目を削除するとマクロ「更新」が実行されてしまいます。 シートをコピーした後、画像のマクロを削除する方法はありませんか? 各Q&Aサイトをググるといろいろ出てきますが、理解できませんでした。 もしくは、シートAとそっくりなシート(ページレイアウトや書式もそのままでデータのみ値コピー)を作成するマクロの提示でも構いません。

  • 複数のファイルにまたがるマクロについて

    詳しい方、教えて下さい。 あるファイル(Aとします)に、データが入っています。 そのデータを、複数の別ファイル(B,C,Dとします)に一度にコピーできるマクロというのは作成可能でしょうか。具体的には、ファイルAのワークシートに3銘柄の株価データが入っており、それをそれぞれファイルBCDのシート(同じ形式のファイルで、コピーする場所も同じです)に1回のマクロでコピーしたいのです。つまり、BCDのワークシートそれぞれでマクロを作成するのではなく、一発でAからBCDへのコピーができるマクロが可能か知りたいのです。また、そのマクロを動かす時に、BCDファイルを開いていなくともコピーはできるのでしょうか。少しわかりにくい質問かもしれませんが、宜しくお願い致します。

専門家に質問してみよう