none
エクセルでマクロの入ったセルをコピー、ペーストに時間がかかる RRS feed

  • 質問

  • コミニュティで質問して設定関係いろいろ試したのですが

    Excel2010、2013でマクロを含むセルのコピーが時間がかかる

    富士通さんのPCに変えて Win7にoffice2013を入れたのですが マクロ組んだセルのコピー、ペーストをマウスの右クリックで行うと2つのセルを1回コピーするのに2分弱かかります ただし ショートカット(Ctrl+C、Ctrl+V)を使うとすぐに貼り付け終了できます これはoffice側の問題?なのでしょうか

    ただ 自作PCでWin7にoffice2013を入れたPCで試したら マウスの右クリックで普通に動いているのですが ほかの既製品のPCないので試せない状態です

    マクロが原因ではないかと こちらで見てもらってはということになったのですが

    一応 マクロ貼り付けて見ます

     Sub Macro1()
    '
    ' Macro1 Macro
    ' マクロ記録日 : 2004/5/21  ユーザー名 : 嘉門
    '
    '
    Dim A(5, 9, 14)

    For I = 1 To 5
      For J = 1 To 9
        For K = 1 To 14
           A(I, J, K) = Cells(10 * (I - 1) + 312 + J, K + 4)
        Next K
      Next J
    Next I

        Range("E3:R11").Select
        Selection.ClearContents
        Range("E13:R21").Select
        Selection.ClearContents
        Range("E23:R31").Select
        Selection.ClearContents
        Range("E33:R41").Select
        Selection.ClearContents
        Range("E43:R51").Select
        Selection.ClearContents
        Range("E53:R61").Select
        Selection.ClearContents
        Range("E63:R71").Select
        Selection.ClearContents
        Range("E73:R81").Select
        Selection.ClearContents
        Range("E83:R91").Select
        Selection.ClearContents
        Range("E93:R101").Select
        Selection.ClearContents
        Range("E103:R111").Select
        Selection.ClearContents
        Range("E113:R121").Select
        Selection.ClearContents
        Range("E123:R131").Select
        Selection.ClearContents
        Range("E133:R141").Select
        Selection.ClearContents
        Range("E143:R151").Select
        Selection.ClearContents
        Range("E153:R161").Select
        Selection.ClearContents
        Range("E163:R171").Select
        Selection.ClearContents
        Range("E173:R181").Select
        Selection.ClearContents
        Range("E183:R191").Select
        Selection.ClearContents
        Range("E193:R201").Select
        Selection.ClearContents
        Range("E203:R211").Select
        Selection.ClearContents
        Range("E213:R221").Select
        Selection.ClearContents
        Range("E223:R231").Select
        Selection.ClearContents
        Range("E233:R241").Select
        Selection.ClearContents
        Range("E243:R251").Select
        Selection.ClearContents
        Range("E253:R261").Select
        Selection.ClearContents
        Range("E263:R271").Select
        Selection.ClearContents
        Range("E273:R281").Select
        Selection.ClearContents
        Range("E283:R291").Select
        Selection.ClearContents
        Range("E293:R301").Select
        Selection.ClearContents
        Range("E303:R311").Select
        Selection.ClearContents

        Range("E313:R321").Select
        Selection.ClearContents
        Range("E323:R331").Select
        Selection.ClearContents
        Range("E333:R341").Select
        Selection.ClearContents
        Range("E343:R351").Select
        Selection.ClearContents
        Range("E353:R361").Select
        Selection.ClearContents

     For I = 1 To 5
      For J = 1 To 9
        For K = 1 To 14
           Cells(10 * (I - 1) + 2 + J, K + 4) = A(I, J, K)
        Next K
      Next J
    Next I

    Range("A1").Select

    End Sub

    以上なのですが 宜しくお願いします

    2014年12月13日 7:49

すべての返信

  •  何か月か前にどこかのサイトで同じ質問をしていくつかのアドバイスもありましたが

    アドバイスを無視して同じことを書いていますね。 そのコード自体は感心できない部分があるとしても

    とても性能が低いPCでもたかだか1秒ほどで終わります。

    少し書き換えればほぼ瞬時に終わるでしょう。

    そうならないということは、

    以前にも書いたと思いますが

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    End Sub

    あたりに何か書かれている可能性が高いです。

         Range("E3:R11").ClearContents

    のようにすべて書き換えてしまえばそちらが呼び出されることはなくなります。

    2014年12月14日 1:52
  • 今回の原因とは直接関係なさそうですが、多くのセルを操作する場合は、一時的に自動再計算と画面の描写を止めるのが基本です。

    (参考)
    2.6.3 画面描画と数式再計算を止める
    https://sites.google.com/site/compositiosystemae/home/vbaworld/primitive/exp1/stopredrow


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2014年12月15日 1:50
    モデレータ
  • おせわになってます DreamyCatさん

    すいませんが アドバイス無視して同じこと書いてといわれても

    自分 マクロのことわからないから わかるひとに 聞いてみます と 書きましたし

    もうひとつのサイトで相談にのってもらっている方に マクロの中身 このサイトで見て もらったらと 助言もらったので

    質問かいたのですが 素人は質問書くなということなんですね


    2014年12月23日 7:11
  •  きつい書き方をしているのでそう受け止められてもしかたがないのですが

    VBAがどこに書かれているかわかる程度の知識があれば、アドバイスをもとにすぐに解決できる問題だろうというのが

    私の気持ちです。

     「マクロの中身」についても、別のスレッドでアドバイス等がありましたが、回答している側からすればアドバイスは無視されているようなものです。 一週間でもいいですからVBAの使い方を勉強すればどこが原因かはわかるでしょう。そうすればいろんな方がすぐに解決してくれるでしょう。  

    2014年12月25日 1:26