Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


562 / 76735 ←次へ | 前へ→

【81839】Re:セル内の文字色操作
お礼  こまおじ  - 21/6/21(月) 2:03 -

引用なし
パスワード
   ▼マナ さん

丁寧に解説していただきありがとうございます。
教えていただいた方式だと、
1〜2文字目が斜体、取り消し線設定などされていると、
書式情報が壊れてしまう感じですね。

連続文字の際の方、ご指摘ありがとうございます。
検証が足りてませんでした。
連続して斜体になっている文字の検証をしてみたのですが、
結果として、連続文字として処理すればよいことが分かりました。
コードを以下に載せておきます。

ご助言ありがとうございました。
--------------------------------------------------------------
'連続文字かを判定
For 終端 = 2 To Len(Cells(行, 列))
 If Cells(行, 列).Characters(1, 1).Font.Name = Cells(行, 列).Characters(終端, 1).Font.Name And _
  Cells(行, 列).Characters(1, 1).Font.FontStyle = Cells(行, 列).Characters(終端, 1).Font.FontStyle And _
  Cells(行, 列).Characters(1, 1).Font.Size = Cells(行, 列).Characters(終端, 1).Font.Size And _
  Cells(行, 列).Characters(1, 1).Font.Strikethrough = Cells(行, 列).Characters(終端, 1).Font.Strikethrough And _
  Cells(行, 列).Characters(1, 1).Font.OutlineFont = Cells(行, 列).Characters(終端, 1).Font.OutlineFont And _
  Cells(行, 列).Characters(1, 1).Font.Shadow = Cells(行, 列).Characters(終端, 1).Font.Shadow And _
  Cells(行, 列).Characters(1, 1).Font.Underline = Cells(行, 列).Characters(終端, 1).Font.Underline And _
  Cells(行, 列).Characters(1, 1).Font.ColorIndex = Cells(行, 列).Characters(終端, 1).Font.ColorIndex And _
  Cells(行, 列).Characters(1, 1).Font.TintAndShade = Cells(行, 列).Characters(終端, 1).Font.TintAndShade And _
  Cells(行, 列).Characters(1, 1).Font.ThemeFont = Cells(行, 列).Characters(終端, 1).Font.ThemeFont Then
 Else
  Exit For
 End If
Next
'
If 終端 > Len(Cells(行, 列)) Then
 文字長 = 1
Else
 文字長 = 終端 - 1
End If

'RangeのFontプロパティを上書き。Characters(1, 連続文字長)の情報を更新するとなぜか更新される。
With Cells(行, 列).Characters(1, 文字長).Font
  .Name = Cells(行, 列).Characters(1, 文字長).Font.Name
  .FontStyle = Cells(行, 列).Characters(1, 文字長).Font.FontStyle
  .Size = Cells(行, 列).Characters(1, 文字長).Font.Size
  .Strikethrough = Cells(行, 列).Characters(1, 文字長).Font.Strikethrough
  .OutlineFont = Cells(行, 列).Characters(1, 文字長).Font.OutlineFont
  .Shadow = Cells(行, 列).Characters(1, 文字長).Font.Shadow
  .Underline = Cells(行, 列).Characters(1, 文字長).Font.Underline
  .ColorIndex = Cells(行, 列).Characters(1, 文字長).Font.ColorIndex
  .TintAndShade = Cells(行, 列).Characters(1, 文字長).Font.TintAndShade
  .ThemeFont = Cells(行, 列).Characters(1, 文字長).Font.ThemeFont
End With

'NULLがあるため、入れ子ではなく独立して条件の確認を行う。
If Cells(行, 列).Characters(1, 文字長).Font.Superscript = True Then
 Cells(行, 列).Characters(1, 文字長).Font.Superscript = Cells(行, 列).Characters(1, 文字長).Font.Superscript
End If
'NULLがあるため、入れ子ではなく独立して条件の確認を行う。
If Cells(行, 列).Characters(1, 文字長).Font.Subscript = True Then
 Cells(行, 列).Characters(1, 文字長).Font.Subscript = Cells(行, 列).Characters(1, 文字長).Font.Subscript
End If

'斜体文字チェック→赤文字設定
For 開始文字位置 = 1 To Len(セル)
 If Cells(行, 列).Characters(開始文字位置, 1).Font.Italic = True Then
  Cells(行, 列).Characters(開始文字位置, 1).Font.ColorIndex = 3
 End If
Next

19 hits

【81832】セル内の文字色操作 こまおじ 21/6/19(土) 5:30 質問[未読]
【81833】Re:セル内の文字色操作 マナ 21/6/19(土) 14:28 発言[未読]
【81835】Re:セル内の文字色操作 こまおじ 21/6/20(日) 9:54 お礼[未読]
【81836】Re:セル内の文字色操作 マナ 21/6/20(日) 12:21 発言[未読]
【81837】Re:セル内の文字色操作 マナ 21/6/20(日) 17:41 発言[未読]
【81838】Re:セル内の文字色操作 マナ 21/6/20(日) 19:05 発言[未読]
【81839】Re:セル内の文字色操作 こまおじ 21/6/21(月) 2:03 お礼[未読]
【81840】Re:セル内の文字色操作 マナ 21/6/21(月) 21:59 発言[未読]
【81844】Re:セル内の文字色操作 こまおじ 21/6/24(木) 0:51 お礼[未読]
【81834】Re:セル内の文字色操作 マナ 21/6/19(土) 16:03 発言[未読]

562 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free