エクセルのマクロを様々なホームページを見ながら初めて作りました。
目的は、エクセルに取り込んだ200件ほどのメールを見やすくするためです。
メールの取り込みは出来ました。データは受信日時、送信者、件名、本文(多くても500字程度)が1行ごとに入っています。
200件の内、100件程度のメールで、本文中の重要な箇所や文字が赤色にしています。
マクロで行おうとしていることは、本文中の文字列の中から文字を調べて、赤色なら受信日時も赤色にして、見やすくしようとしています。
テストで行った10件のデータではうまく処理できたのですが、200件全部を処理しようとすると、応答なし、となってしまいます。
修正した方がいい箇所があれば教えていただけませんか。
Sub fcolor()
Dim str As String, char As Characters
Dim i, j, length
For i = 1 To ActiveSheet.Cells(1, 6).End(xlDown).Row
str = Cells(i, 6)
length = Len(str)
For j = 1 To length
If Cells(i, 6).Characters(j, 1).Font.ColorIndex = 3 Then
Cells(i, 1).Font.ColorIndex = 3
Exit For
End If
Next j
Next i
End Sub
No.1ベストアンサー
- 回答日時:
こんばんは!
コードを拝見すると、F列に「赤」のフォントがあればその行のA列セルすべての文字を「赤」にしたい!
というコトですよね?
お使いのバージョンが判らないのですが、Excel2007以降であれば色フィルタが使えます。
オートフィルタでの方法はどうでしょうか?
一例です。
Sub Sample1()
Dim lastRow As Long
Application.ScreenUpdating = False
Rows(1).Insert
Range("F1") = "ダミー"
lastRow = Cells(Rows.Count, "F").End(xlUp).Row
Rows(1).AutoFilter field:=6, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterFontColor
Range(Cells(2, "A"), Cells(lastRow, "A")).SpecialCells(xlCellTypeVisible).Font.ColorIndex = 3
ActiveSheet.AutoFilterMode = False
Rows(1).Delete
Application.ScreenUpdating = True
End Sub
こんな感じではどうでしょうか?m(_ _)m
tom04さん。
ありがとうございます。完璧でした。
処理も一瞬で終わりました。
わざわざ1文字ずつ調べなくても、エクセルが選り分けてくれるのですね。
エクセルの機能を知らずに力技でやろうとしてしまいました。
これを機にエクセルも勉強していきます。
回答のスピードと正確さ、本当に助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) R列の1111/11/11以外、且つQ列の×の条件で該当行のAからAE列までオレンジに塗りつぶす 2 2022/07/02 10:18
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのオートフィルタで最...
-
エクセルで時刻(8:00~20:00)...
-
エクセルでオートフィルタのボ...
-
エクセルの偶数行(奇数行)の抽出
-
可視セルを対象としたcountifが...
-
access マクロでのフィルタの...
-
【EXCEL】条件に一致した最新デ...
-
Excel共有ブックのオートフィル...
-
エクセル関数で、数字の入った...
-
Excelのオートフィルタで非表示...
-
今日の日付のデータをすばやく...
-
オートフィルタで3つ以上の条...
-
エクセルで隔週をもとめる
-
Excelで文字を入力と自動的にフ...
-
オートフィルタで選択したデー...
-
エクセルで、条件に一致した行...
-
エクセルで作った住所録からの...
-
エクセル フィルタで抽出したデ...
-
excelオートフィルタの検索条件...
-
エクセルのステータスバーにオ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで時刻(8:00~20:00)...
-
エクセルのオートフィルタで最...
-
エクセルでオートフィルタのボ...
-
Excelのオートフィルタで非表示...
-
Excel共有ブックのオートフィル...
-
エクセル・条件付で行を削除す...
-
オートフィルタで3つ以上の条...
-
エクセルの偶数行(奇数行)の抽出
-
エクセルで、条件に一致した行...
-
エクセル関数で、数字の入った...
-
access マクロでのフィルタの...
-
エクセルにて、フィルタをかけ...
-
データの抽出を教えてください
-
なぜShowAllDataだとうまく行か...
-
オートフィルタで選択したデー...
-
Excel 非表示の列を飛ばして合...
-
エクセルのオートフィルタで抽...
-
エクセルで検索窓のようなもの...
-
【EXCEL】条件に一致した最新デ...
-
Excelマクロ:オートフィルタ3...
おすすめ情報