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

回答編集履歴

1

しゅうせい

2016/09/05 04:09

投稿

jawa
jawa

スコア3020

answer CHANGED
@@ -5,9 +5,9 @@
5
5
 
6
6
  原因
7
7
  ---
8
- 上記ページを見ていただければわかると思いますが、引数の1つ目が文字の取得位置、2つ目が取得する長さとなっています。
8
+ 上記ページを見ていただければわかると思いますが、引数の1つ目が文字の取得位置、2つ目が取得する長さとなっています。
9
9
 
10
- 提示いただいたコードでは、文字を1文字ずつ取得して文字色を写していきたいのだと思いますが、
10
+ 今回の処理では、文字列から文字を1文字ずつ取得して文字色を写していきたいのだと思いますが、提示いただいたコードでは、
11
11
  `fromRange.Cells(i, j).Characters(k, k).Font.ColorIndex `
12
12
  のように2つ目の引数まで変数kの値としてしまっています。
13
13
 
@@ -17,9 +17,10 @@
17
17
  kループ3回目:Characters(3, 3)⇒"CDE"
18
18
  ・・
19
19
 
20
- といった具合に、取得する文字の長さも増えていってしまいます。
20
+ といった具合に、取得する文字の長さも増えていってしまいます。
21
- 上記例で"BC"がともに赤ならFont.ColorIndexは赤(3)を取得できますが、BとCで色が異なる場合はFont.ColorIndexはNullとなり、結果的に黒文字として反映されてしまいます。
22
21
 
22
+ 例えばループ2週目で取得した文字列"BC"がともに赤ならFont.ColorIndexは赤(3)を取得できますが、BとCで色が異なる場合はFont.ColorIndexはNullとなり、結果的に黒文字として反映されてしまいます。
23
+
23
24
  改修コード
24
25
  ---
25
26
  期待する動作とするためには、問題の部分を以下のように修正すればよいと思います。