Excel VBA質問箱 IV

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

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


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

【47045】早くできますか? sige 07/2/27(火) 0:03 質問[未読]
【47048】Re:早くできますか? おれおれ 07/2/27(火) 4:28 発言[未読]
【47050】Re:早くできますか? ちくたく 07/2/27(火) 8:58 発言[未読]
【47068】Re:早くできますか? sige 07/2/28(水) 2:41 お礼[未読]

【47045】早くできますか?
質問  sige  - 07/2/27(火) 0:03 -

引用なし
パスワード
   下記コード早くする方法ありませんか?
100件ほど行うのですが結構時間掛かります。
お解りになり方アドバイスお願いします。
Sub 文字色変更50()
  Dim i As Long, k As Long
  Dim mySource As Worksheet
  Dim myRange As Range, c As Range
  Dim s1 As String
  Dim s2 As String
  ActiveSheet.Unprotect
  
  Range("C28,C3:D22,G3:J22,N3:O22,S3:S22,V3:W22").Select
  Selection.Font.ColorIndex = 51
  Range("C3").Select
  
  Set mySource = Worksheets("発注先")
  Set myRange = Range("C3:C22,G3:G22,N3:N22,S3:S22,V3:V22")
  
    k = 0
  For Each c In myRange
    With c
      k = k + 1
  
   s1 = mySource.Cells(7 + k, 2).Value
   s2 = mySource.Cells(7 + k, 10).Value
      .Value = StrConv(LeftB(StrConv(s1, vbFromUnicode), 6), vbUnicode) & " " & s2
      i = InStr(.Text, " ")
      If i Then
        .Characters(i).Font.Color = vbBlue

      End If
    End With
  Next
  Call 保護8
End Sub

【47048】Re:早くできますか?
発言  おれおれ  - 07/2/27(火) 4:28 -

引用なし
パスワード
   ▼sige さん:
コードの前に
Application.ScreenUpdating = False
後ろに
Application.ScreenUpdating = True
を入れれば少しは早くなるのでは?

【47050】Re:早くできますか?
発言  ちくたく E-MAIL  - 07/2/27(火) 8:58 -

引用なし
パスワード
   sige さん
こんにちは。

それほど、遅いコードのようには思えませんが。
時間がかかるのは、
>  Call 保護8
の部分ではないですかね?

あとは、シートに計算式が入っている場合、
ツール/オプション/計算方法
の、計算方法が「自動」なら、動きがゆっくりになると思います。
Selectは使わないほうがいいのですが、
ループの中にあるわけではないですし。

【47068】Re:早くできますか?
お礼  sige  - 07/2/28(水) 2:41 -

引用なし
パスワード
   おれおれさん
ちくたくさん
ありがとうございました。
試してみます。

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