質問するログイン新規登録

質問編集履歴

1

質問文がわかりにくかったため修正

2021/02/17 02:45

投稿

morinokuma0621
morinokuma0621

スコア81

title CHANGED
@@ -1,1 +1,1 @@
1
- ClosedXMLでセル内の指定した文字に色を付けたで、指定の記号の前に改行を入れたい
1
+ ClosedXMLでセル内の指定した文字に色を付けたで、指定の記号の前に改行を入れたい
body CHANGED
@@ -1,6 +1,13 @@
1
- 以前別の方が『[C# ClosedXMLでセル内の指定した文字に色を付けたい](https://teratail.com/questions/192939)』という内容で投稿されていましたが、参考になりませんでしたので、質問させてください。
1
+ 以前別の方が『[C# ClosedXMLでセル内の指定した文字に色を付けたい](https://teratail.com/questions/192939)』という内容で投稿されていましたが、
2
+ 参考になりませんでしたので、質問させてください。
2
3
 
4
+ 質問内容はタイトルの通りなのですが、
3
- 質問内容はタイトルの通りなのですが、ClosedXMLでセルの中の特定の文字だけ色を変えるとともに、指定の記号(※など)の前に改行を入れたいと思っています。そこで次のようにコードを書いてみました。「※かきくけこ」の文字色だけを灰色にし、※の前に改行を入れる、というコードです。
5
+ ClosedXMLでセルの中の特定の文字だけ色を変えるとともに、
6
+ 指定の記号(※など)の前に改行を入れたいと思っています。
7
+
8
+ そこで次のようにコードを書いてみました。
9
+ 「※かきくけこ」の文字色だけを灰色にし、
10
+ ※の前に改行を入れる、というコードです。
4
11
  ```C#
5
12
  string n = "※あいうえお※かきくけこ※さしすせそ";
6
13
  int x = n.IndexOf("※かきくけこ");
@@ -13,7 +20,8 @@
13
20
  ```
14
21
  このときは、改行は正しくできましたが、文字色は全く変わっていませんでした。
15
22
 
16
- ちなみに、「先に改行を入れてから文字色を変える」というパターンでは、次のような書き方で成功しています。
23
+ ちなみに、「先に改行を入れてから文字色を変える」というパターンでは、
24
+ 次のような書き方で成功しています。
17
25
  ```C#
18
26
  string n = "※あいうえお※かきくけこ※さしすせそ";
19
27
 
@@ -24,6 +32,15 @@
24
32
  if (x >= 0)
25
33
  { ws.Cell(1, 1).RichText.Substring(x, 6).SetFontColor(XLColor.Gray); }
26
34
  ```
27
- ですが、例えば『※かきくけ※さしすせそ』という文字列のときは間に改行を入れないなど条件がでてくるため、できれば改行は最後にしたいと考えています。
35
+ このときは、セル内特定の文字列だけ色を変えることがでめ、
36
+ やはりReplaceによる改行を入れることで、
37
+ セル内の色情報が初期色の黒に戻ってしまうのではないかと考えました。
28
38
 
39
+ これでも一見成功していると言えば成功しているのですが、
40
+ ただ諸事情により、できれば改行は最後にしたいと考えています。
41
+
29
- ようにすれば文字色変えられるか、ご指示いだけないでしょうか。
42
+ 『セル内特定の文字列の文字変えたあとReplaceで改行ても、
43
+ 文字色が黒に戻らないようにする』
44
+
45
+ には、どうすればよろしいでしょうか。
46
+ ご教示よろしくお願いいたします。