よろしくお願いします。
【条件】
セルの文字列を一文字ずつ読み込み、
文字色が赤だったら黒にするというVBAを作成したいです。
例)
セルA(1、1)の「あいうえお」 の”い”が青、”う”が赤だった場合、”う”を黒にする。
【状況】
以下のようなVBAを作成しました。
実行するとVBAは正常終了するのですが、VBAで上記変換をかけたEXCELファイルを開くと
エラーが発生します。
デバッグモードで一行ずつ実行すると下記※2部分で文字化け?しているようです。
VBA)
Do Until i = c
If Range("xx").Characters(i ,c-1).Font.color = RGB(255,0,0) then
Range("xx").Characters(i, c-1).Font.color = RGB(0,0,0) ・・・※2
i = i +1
End if
Loop
【エラー】
『"ファイル名"には読み取れない内容が含まれています。このブックの内容を回復しますか?
ブックの発信元が信頼できる場合は「はい」をクリックして下さい。』
『"ファイル名”の修復
読み取れなかった内容を修復または削除することにより、ファイルを開くことが出来ました。
修復されたレコード./xl/worksheets/sheet1.xmlパーツ内のビュー』
上記エラーが表示される+エクセルの内容の大部分が消えます。
【質問】
上記VBAは本物を持ち出せないのでイメージです。
(もしかしたら細かい間違いがあるかもしれませんが実物は構文エラーはありません。)
質問したいのはロジックではなく以下になるのでイメージで汲み取っていただけるとありがたく。。
(1)Fontの書き換えを行った際、上記【エラー】が発生するのはどのような理由があるか
わかりますでしょうか。
(2)エラーの理由の詳細はわからないが「こんなやりかたではどうか」という
【条件】を満たす他のロジックは何かないでしょうか。
他にもオートメーションエラーが発生したり正直お手上げ状態でわらをもすがる思いです。
思いつきでもよいので何かありましたら回答のほどよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんばんは!
質問内にある(2)に当てはまりますが・・・
エラーの原因が何であるかは判りませんが、↓のようなコードではどうでしょうか?
(対象セルはA1としています)
Sub test()
Dim k As Long
For k = 1 To Len(Cells(1, 1))
If Cells(1, 1).Characters(Start:=k, Length:=1).Font.Color = RGB(255, 0, 0) Then
Cells(1, 1).Characters(Start:=k, Length:=1).Font.Color = RGB(0, 0, 0)
End If
Next k
End Sub
お役に立たなかったらごめんなさいね。m(_ _)m
この回答への補足
回答ありがとうございます。
RangeのプロパティでなくCellを使用してみる・・
ということですね。
試してみます!結果はお礼で報告させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- Visual Basic(VBA) M365環境での動作エラー、及び対応相談 1 2023/01/27 04:18
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Debug Assertion Failed?
-
VBAでFormat がうまく使えない
-
NET USE コマンドでエ...
-
vbaでファイルを開くパス名に変...
-
ホームページビルダーの”全体の...
-
Web.Config 構成ファイルのエラー
-
実行時エラー'1004': アプリケ...
-
FileUploadを利用しての画像保存
-
Eclipseでのエラー検出の機能に...
-
ACCESS VBAのOpenForm書き方
-
EXCEL VBA 文字色を変える
-
bcpadがうまく実行できないので...
-
シェルスクリプトの実行エラー...
-
C# HttpWebRequestのエラーにつ...
-
LTspiceのTime Stepエラーについて
-
不明なソフトウェア例外(0xe06...
-
ASPでoo4o接続ができません。
-
エクセルのワークシートに、文...
-
勝手にショートカットのリンク...
-
jw cadの名前をつけて保存・・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
Debug Assertion Failed?
-
NET USE コマンドでエ...
-
POV-Ray についての質問です!
-
Excel ファイルに保存すると実...
-
不明なソフトウェア例外(0xe06...
-
ホームページビルダーの”全体の...
-
シェルスクリプトの実行エラー...
-
vbaでファイルを開くパス名に変...
-
エラーコード 70 「書き込み...
-
図形のクリアで実行時の1004エ...
-
ACCESS VBAのOpenForm書き方
-
Web.Config 構成ファイルのエラー
-
Access ADOで文字列を日付型へi...
-
C# HttpWebRequestのエラーにつ...
-
LTspiceのTime Stepエラーについて
-
bcpadがうまく実行できないので...
-
VB5のEXEの起動時エラー
-
xmlドキュメントから別拡張子で...
-
VBAで印刷するとエラーになって...
おすすめ情報