アプリ版:「スタンプのみでお礼する」機能のリリースについて

開く、上書き保存 に掛かる時間が長い

いつもお世話になります。

OSはWin10 エクセルは2016 です。

ブックを「開く」 又は 「上書き保存」 の時間がかかります。

 因みに、
  開く    は約1分
  上書き保存 は1分45秒
 です。

少し時間を短縮できないでしょうか。
もし可能ならご指導願えませんでしょうか。


私が憶測するに
1 ガンチャートに名前を入れている
2 構文でCells(GYOU, 1).Cells(GYOU, 2).と言う具合に繰り返し
が関係していると思いますが。

※参考

 1 VBAの構文は
   Private Sub UserForm_Initialize()
   TextBox1.Text = Format(Date, "mm/dd")
   End Sub

   Sub 記入_Click()
    Dim GYOU '追加
    GYOU = Range("C65536").End(xlUp).Row + 1
    Cells(GYOU, 1).Value = Range("N1").Value
    Cells(GYOU, 2).Value = Range("N2").Value
    Cells(GYOU, 3).Value = Range("N3").Value
    Cells(GYOU, 5).Value = Range("N4").Value
    Cells(GYOU, 6).Value = Range("N5").Value
    Cells(GYOU, 7).Value = Range("N6").Value
    Cells(GYOU, 8).Value = Range("N7").Value
    Cells(GYOU, 9).Value = Range("N8").Value

   End Sub
 2 B7の関数は
   =IF(COUNTIFS(入力!$D:$D,$A7,入力!$G:$G,"<="&B$5,入力!$H:$H,">="&B$5,入力!$G:$G,">0",
   入力!$H:$H,"<9999/12/31")=1,INDEX(入力!$E:$E,SUMPRODUCT(ROW(入力!$E$1:INDEX(入力!$E:$E,
MATCH(9E+99,入力!$A:$A)))*(入力!$D$1:INDEX(入力!$D:$D,MATCH(9E+99,入力!$A:$A))=$A7)*(入力!$G$1:INDEX(入力!$G:$G,MATCH(9E+99,
入力!$A:$A))<=B$5)*(入力!$H$1:INDEX(入力!$H:$H,MATCH(9E+99,入力!$A:$A))>=B$5))),IF(COUNTIFS(入力!$D:$D,$A7,入力!$G:$G,"<="&B$5,
入力!$H:$H,">="&B$5,入力!$G:$G,">0",入力!$H:$H,"<9999/12/31")>1,"重複",""))

「開く、上書き保存 に掛かる時間が長いので」の質問画像

A 回答 (1件)

こんばんは!



>2 構文でCells(GYOU, 1).Cells(GYOU, 2).と言う具合に繰り返し
>が関係していると思いますが。

おそらくユーザーフォームのコマンドボタンのコードだと思いますので、
ブックを開く、保存する。といった場合には直接関係ないと思います。
(コマンドボタンをクリックするとマクロが実行されるはず)

一つ気になるのが、数式内に
SUMPRODUCT関数を使っていますね。
SUMPRODUCT関数は配列数式になりますので、極端に広い範囲を指定してしまうと
計算速度が落ちてしまいます。

おそらくSheetの最終行までデータがある!というコトはないと思いますので、
SUMPRODUCT関数の範囲をある程度限定してみてはどうでしょうか。

SUMPRODUCT関数内のINDEX関数の範囲が列全体になっていますので、
>SUMPRODUCT(ROW(入力!$E$1:INDEX(入力!$E:$E,
の部分を
>SUMPRODUCT(ROW(入力!$E$1:INDEX(入力!$E1:$E3000,

といった感じで、もちろん他の範囲も同じ行数に合わせます。

※ 検証していませんので、
別の原因ならごめんなさい。m(_ _)m
    • good
    • 0
この回答へのお礼

おはよう
範囲を 例えば、
E:E H:H を tomoさんのアドバイスで 
$E$1:$E$1000
$H$1:$H$1000
などのように変更したらばっちり解決できました

ありがとうございました

お礼日時:2018/12/27 10:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています