- ベストアンサー
特定文字を異なる色で表示するアプリ
- 特定の2字「@」と「;」を異なる色で検索表示する方法を探求している。
- 現在、Windowsでサクラエディターを使用し、デフォルトでは検索対象が1色で表示されるのが課題。
- 自作フラッシュカードアプリにおいて、目視でのセパレーター確認が必要で、特定文字の色分け表示アプリを求めている。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (5)
- kkkkkm
- ベストアンサー率66% (1719/2589)
> なので@と ; は(が)セパレーターの役目をしているというだけが前提条件です。 @や;がA列一行ごとに一個しかない(pen@ペンのような感じ)のでしたら =IF(COUNTIF(A1,"*@*")=1,COUNTIF($A$1:A1,"*@*"),"") =IF(COUNTIF(A1,"*;*")=1,COUNTIF($A$1:A1,"*;*"),"") で同じようにカウントできると思うのですが、 A列一行(たとえばA1)に pen@ペン(えんぴつではない筆記具); なにかしら; みたいな感じだと無理な感じですね…。 回答No.3で紹介したVBAの色付けだと該当文字だけに色が付くので、どのようなパターンでも後で目視はできると思います。
お礼
たいへんお世話になりました
- kkkkkm
- ベストアンサー率66% (1719/2589)
エクセルに読み込んでA列に添付画像のように一行ごとに分かれるのでしたら 色分けしなくても(添付画像は色分けした後に実行したので色が分かれています) G1に =IF(A1="@",COUNTIF($A$1:A1,"@"),"") H1に =IF(A1=";",COUNTIF($A$1:A1,";"),"") としれ両方を下方向にコピーすると画像のようにカウントされますので、交互になっていないところがあると画像の2と3のところのように表示されます(本来はG列とH列の数値はジグザグに表示されるはず)から、連続しているところがわかるのではないでしょうか。 カウントアップしなくてもジグザグが分かればいいとは思ったのですが、カウントすれば何かの役に立つかもと思ってカウントアップしています。
補足
ありがとうございます。 実は@と;の出現位置は、必ず改行のあととは限らず、単語のあとについているケースもあります。 例:pen@ なので@と ; は(が)セパレーターの役目をしているというだけが前提条件です。 2000英単語の、たぶん9割はたぶん正規表現で テキスト整形できているので、あとの1割を目視で間違いしたい。 そんな意図です。 今日は遅いので、また明日確認させていただきます。 ありがとうございます。
- kkkkkm
- ベストアンサー率66% (1719/2589)
エクセルで該当するデータを読み込んで 【Excel】セル内の特定の文字だけ色を変える https://vbaexcel.slavesystems.com/vba/?p=823 上記のページの最後に セル全体ではなく文字の色だけを変える と説明があるところにVBAのコードが紹介されていますのでこれで対応してみてください。 '検索するキーワード Const KEYWORD = "エラー" このエラーを「;」にしてそのまま実行すると「;」だけが赤になります。 その後エラーの部分を「@」に変えて '指定された単語があれば赤色にする ActiveSheet.Cells(i, COL_TARGET).Characters(Start:=regResult(j).FirstIndex + 1, Length:=Len(KEYWORD)).Font.Color = -16776961 この最後の -16776961 を カラー定数 https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/color-constants の定数の文字列に変更して(たとえばvbBlueとか)再度実行すると「@」だけが指定した色に変更されます。 結果「@」と「;」が色分けされます。 '色を塗るセルが格納されている列 Const COL_TARGET = 1 の1が列番号ですのでそのままだとA列対象になります。
お礼
たいへんお世話になりました
- garo1970
- ベストアンサー率54% (60/111)
カンマは文中にたくさん出てくるので検索置換には都合が悪いのですね。 確かに。 ではEXCELの書き出し形式で「タブ区切りテキスト形式」はどうですか? その上で同様にタブを@、リターンを;に変換という手順で。
お礼
ありがとうございます。 が、たぶん考えている前提条件が違うようにおもいます。 テキストは単語冊子のアマゾンKindle版を、画面スキャンしてOCRでテキスト抽出しており、2列にはなっていません。 ありがたいことに、アプリはWindowsの改行を認識してくれるので、読み込むと改行は反映されます。 質問は@と;が交互に(ダブらず)出現しているかを確認する方法です。
- garo1970
- ベストアンサー率54% (60/111)
その違う色で表示してくれるアプリを探しても、目視で作業するというなら、 むしろエクセルで表・裏の2列で、きちっとしたテーブルを作ってから →CSVで書き出し →エディタでカンマを@に、リターンを;に変換 とした方が早いのではと思いますが・・・ 今あるデータからEXCEL表に落とし込む事は困難なんでしょうか?
お礼
ありがとうございます。 カンマはカードの裏側にくる例文(普通の英文)に頻出するので、使えず、目視でなんとかやりくりしてここまできました。
お礼
ありがとうございます。 2種のキャラクターは、Excelの条件付き書式でセルで色付き表示。 しかし@と ; の数が合わずにいたところ、この回答が目視で探すのバッチりでした。 最後どうしても1つだけ数がずれており、フィルタかけた状態を、別のワークシートに値でコピペし、偶数行・奇数行が交互にでているはずなので、ずれがおこっているところをみつけ、同数になりました。 このセパレーターペアをアプリにインポートしたところ、見事に最後まで正しいフラッシュカードができました。 たいへんお世話になりました