Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5939 / 13645 ツリー ←次へ | 前へ→

【48089】ワークシートのコピーについて あき 07/4/3(火) 13:42 質問[未読]
【48090】Re:ワークシートのコピーについて マクロマン 07/4/3(火) 14:35 発言[未読]
【48091】Re:ワークシートのコピーについて あき 07/4/3(火) 14:44 質問[未読]
【48092】Re:ワークシートのコピーについて マクロマン 07/4/3(火) 15:41 発言[未読]
【48093】Re:ワークシートのコピーについて あき 07/4/3(火) 15:53 お礼[未読]

【48089】ワークシートのコピーについて
質問  あき  - 07/4/3(火) 13:42 -

引用なし
パスワード
   はじめまして。9枚のワークシートを一枚ずつコピーするマクロを作成しているのですがシートのデータが重いからなのか処理が遅くて困っています。やっと全部のシートをコピーできても次の処理でとまってしまいます。何か良い方法があれば教えていただけませんでしょうか?よろしくお願い致します。

【48090】Re:ワークシートのコピーについて
発言  マクロマン  - 07/4/3(火) 14:35 -

引用なし
パスワード
   >やっと全部のシートをコピーできても次の処理でとまってしまいます。

コードの提示がないのでなんともいえませんが、
コードやシートに問題があるのでは?としか・・・。

【48091】Re:ワークシートのコピーについて
質問  あき  - 07/4/3(火) 14:44 -

引用なし
パスワード
   ▼マクロマン さん:
レスありがとうございます。コードは以下のとおりです。
Sub CopySheets()

Dim Last As Integer
Last = 9    'SS最終号番号
Dim jj As Integer
jj = 1     'SS開始番号
Dim jj2 As Integer 'jj身代わり変数
jj2 = jj
Dim jjj As Integer
jjj = 7    '処理開始行番号
Dim 削除セル番号 As String

Dim aaa As Integer
aaa = Last
Dim 元SSシート As String
Dim コピーSSシート As String
Dim 新SSシート As String


For aaa = jj To Last
  

  元SPシート = "SS" & aaa
  コピーSPシート = "SS" & aaa & " (2)"
  新SPシート = "SS" & aaa & "データ"
  
  Sheets(元SSシート).Select
  Sheets(元SSシート).Copy Before:=Sheets(1)
  DoEvents
  Sheets(コピーSSシート).Select
  Sheets(コピーSSシート).Name = 新SSシート
  Worksheets(新SSシート).Move Before:=Worksheets("SS1")

Next aaa

End Sub


DoEventsを使うと処理が早くなるとネットでみたので使ってみましたがたいして変わりませんでした。よろしくお願いします。

【48092】Re:ワークシートのコピーについて
発言  マクロマン  - 07/4/3(火) 15:41 -

引用なし
パスワード
   >Sheets(元SSシート).Select

↑などのシートを選択する部分は不要です。
削除すると若干は早くなると思いますが、
処理が遅い原因は別のところにありそうです。

今回はシートの枚数は9枚ですので、シート
のサイズがネックになっているような気がし
ます。

※VBAでシートのコピーなどをすると、最悪
エクセルが落ちたりすることもあるようです。
PCのメモリなどによると思います。

【48093】Re:ワークシートのコピーについて
お礼  あき  - 07/4/3(火) 15:53 -

引用なし
パスワード
   ▼マクロマン さん:
アドバイスありがとうございます。
>>Sheets(元SSシート).Select
>
>↑などのシートを選択する部分は不要です。
>削除すると若干は早くなると思いますが、
>処理が遅い原因は別のところにありそうです。

おっしゃるとおり若干早くなったもののスムーズにはいきません。
そういえばこのマクロを動かしたあとパソコンがフリーズすることがあります。
容量が小さいと言われたことがあるのでコードが問題ではないのかもしれませんね・・・。データも相当重いのも理由のひとつでしょうが・・・・。
大変お手数をおかけしました。ありがとうございます。

5939 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free