Excel VBA質問箱 IV

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

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


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

【74393】色つきセルへのジャンプ gg54 13/5/29(水) 8:42 質問[未読]
【74394】Re:色つきセルへのジャンプ UO3 13/5/29(水) 13:55 発言[未読]
【74395】Re:色つきセルへのジャンプ gg54 13/5/29(水) 14:55 発言[未読]
【74397】Re:色つきセルへのジャンプ UO3 13/5/29(水) 15:27 発言[未読]
【74398】Re:色つきセルへのジャンプ gg54 13/5/29(水) 15:34 質問[未読]
【74399】Re:色つきセルへのジャンプ gg54 13/5/29(水) 15:39 お礼[未読]

【74393】色つきセルへのジャンプ
質問  gg54  - 13/5/29(水) 8:42 -

引用なし
パスワード
   お世話になります。
ユーザーフォームに
カラーパレットボタン(コマンドボタン)、テキストボックス、OKボタンを配し
カラーパレットボタンを押すとテキストボックスの背景色が変わり(=カラーパレットボタンの背景色)
OKボタンでテキストボックスに示された色で塗りつぶされたセルに
(OKボタンを押すごとに)カーソルを順次ジャンプさせようと思っています。

一応思惑どうりの動作はするのですがジャンプに結構なタイムラグが出ます。

ジャンプのタイムラグを減らせる方法がありましたらご教示を願います。
標準モジュールに写し替えたものを下記に示します。

Sub カラーセルへジャンプ()

Dim myColor As Variant
Dim eC As String

myColor = 255 '赤の場合
eC = ActiveCell.SpecialCells(xlCellTypeLastCell).Address

With Range("A1:" & eC).Application.FindFormat.Interior
  .Pattern = xlSolid
  .PatternColorIndex = xlAutomatic
  .Color = myColor
End With

On Error GoTo errMSG

Cells.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
  xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
  , SearchFormat:=True).Activate
Exit Sub

errMSG: MsgBox "該当するセルがありません。"


End Sub

【74394】Re:色つきセルへのジャンプ
発言  UO3  - 13/5/29(水) 13:55 -

引用なし
パスワード
   ▼gg54 さん:

こんにちは

>一応思惑どうりの動作はするのですがジャンプに結構なタイムラグが出ます。

こちらで、提示のコードをそのまま標準モジュールに貼り付け、マクロショート−カットキーをアサインした上で
実行させましたけど、ショートカットキーをおすと、タイムラグなく、すいすいと
次の赤色セルに移ります。

こちら win7+2010 ですが。
結構なタイムラグ ということですけど、どれぐらいですか?
時計マークがでるとか、そこまではいかないけど、一瞬、間があるとか?
繰り返しますが、こちらでは、一瞬の間もでないで移ります。

【74395】Re:色つきセルへのジャンプ
発言  gg54  - 13/5/29(水) 14:55 -

引用なし
パスワード
   ▼UO3 さん:
返信ありがとうございます。

XP+2007です。

例えばA10、A100、A1000、A10000の各セルに赤を設定してA1セルをセレクト後
ショートカットキーでマクロ起動させると 
A1→A10:タイムラグ無し
A10→A100:1秒程度
A100→A1000:12秒程度(砂時計表示)
A1000→A10000:130秒程度(砂時計表示)
となります。

PCの能力によるものなのでしょうか?


>こちらで、提示のコードをそのまま標準モジュールに貼り付け、マクロショート−カットキーをアサインした上で
>実行させましたけど、ショートカットキーをおすと、タイムラグなく、すいすいと
>次の赤色セルに移ります。
>
>こちら win7+2010 ですが。
>結構なタイムラグ ということですけど、どれぐらいですか?
>時計マークがでるとか、そこまではいかないけど、一瞬、間があるとか?
>繰り返しますが、こちらでは、一瞬の間もでないで移ります。

【74397】Re:色つきセルへのジャンプ
発言  UO3  - 13/5/29(水) 15:27 -

引用なし
パスワード
   ▼gg54 さん:

この状態にしたら、こちらでも気が遠くなるほどの時間がかかりました。
で、原因は、Cells の byRowsで検索しておられますから、A10 から A100 に至るまで
16384 * 90 ぐらいのセルをさがすことになりますね。
次に A100 から A1000 になりますと、16384 * 900 ぐらいの出るを対象にしていますね。

値の検索ならこれでもあっという間なんですが、(たぶん値のあるセルだけを検索しているのではないかと想像)
書式検索は、セルを1つずつ、【なめて】処理するようです。

したがって、重い処理は、どうしようもないと思いますが

Cells.Find を

Range("A1", ActiveSheet.UsedRange).Find

に変更すれば、少しはましかもしれません。

ところで、フォーマット規定ですが

With Application.FindFormat.Interior
  .Pattern = xlSolid
  .PatternColorIndex = xlAutomatic
  .Color = myColor
End With

これでよろしいと思いますよ。

【74398】Re:色つきセルへのジャンプ
質問  gg54  - 13/5/29(水) 15:34 -

引用なし
パスワード
   ▼UO3 さん:

ありがとうございます。

ちなみに"検索と置換"→"書式の検索"を実行するとストレスなくジャンプします。
"マクロの記録"で上記操作を記録させて編集したつもりなのですが…。
どこが違うのでしょうか?

【74399】Re:色つきセルへのジャンプ
お礼  gg54  - 13/5/29(水) 15:39 -

引用なし
パスワード
   ▼UO3 さん:
>Cells.Find を
>Range("A1", ActiveSheet.UsedRange).Find
>に変更すれば、少しはましかもしれません。

ありがとうございます。
ストレスフリーになりました!!

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