Excel VBA質問箱 IV

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

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


24593 / 76738 ←次へ | 前へ→

【57493】Re:特定の操作をすると処理速度が速くなる現象の原因の特定と対処方法
回答  mizunu  - 08/8/27(水) 19:10 -

引用なし
パスワード
   >実際の処理では、
>セル中の文字列の何文字目から何文字目まで下線が引いてあるか、
>また、一つのセルの中で何箇所下線が引かれているか、
>を取得する必要があるため、
>一文字ずつ判定するしかないかな、と思っています。

このような場合、セル中の文字列が、
1) 下線を含んでない、
2) 全て同じ下線、
3) それ以外(一部含む、異種の下線)
かを調べて、3)の場合のみ、一文字ずつ判定すれば済みます。

示されたコードの For Each の内部は一例として次のように処理できます。
あくまでも一般的にはです。今回の処理に当てはまらないかもしれませんがご参考まで。

 For Each rngTarget In targetCells
  charUnderLine = rngTarget.Font.Underline
  If IsNull(charUnderLine) Then '一文字ずつ判定
   Debug.Print "下線は含まれている"
   'セル内の文字数の取得
   max_i = Len(rngTarget)
   For i = 1 To max_i
    charUnderLine = rngTarget.Characters(i, 1).Font.Underline
    'ステータスバーに処理行数と文字数を表示
    Application.StatusBar = rngTarget.Row & "/" & endNum & " 行目の " _
     & i & "/" & max_i & "文字目を処理中です"
   Next i
  ElseIf charUnderLine = xlUnderlineStyleNone Then
   Debug.Print "下線は無い"
  Else
   Debug.Print "全て同じ下線である", charUnderLine
  End If
 Next
2 hits

【57486】特定の操作をすると処理速度が速くなる現象の原因の特定と対処方法を教えて... 一子 08/8/27(水) 12:49 質問
【57487】Re:特定の操作をすると処理速度が速くなる... mizunu 08/8/27(水) 14:55 回答
【57489】Re:特定の操作をすると処理速度が速くなる... 一子 08/8/27(水) 15:31 お礼
【57493】Re:特定の操作をすると処理速度が速くなる... mizunu 08/8/27(水) 19:10 回答
【57501】Re:特定の操作をすると処理速度が速くなる... 一子 08/8/28(木) 10:34 お礼

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