Excel VBA質問箱 IV

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

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


35 / 12988 ツリー ←次へ | 前へ→

【78931】セル内の文字の一部の色を変えたい M.E 17/3/5(日) 21:00 質問[未読]
【78932】Re:セル内の文字の一部の色を変えたい γ 17/3/5(日) 21:25 発言[未読]
【78933】Re:セル内の文字の一部の色を変えたい β 17/3/5(日) 21:26 発言[未読]
【78934】Re:セル内の文字の一部の色を変えたい γ 17/3/5(日) 22:00 発言[未読]
【78935】Re:セル内の文字の一部の色を変えたい M.E 17/3/6(月) 7:19 お礼[未読]

【78931】セル内の文字の一部の色を変えたい
質問  M.E  - 17/3/5(日) 21:00 -

引用なし
パスワード
   いつもお世話になっております。
また、質問させてください。

例えば
A1に「AAABBBCCCAAABBBCCC」という文字が入っていたとします。
B1に「BC」という文字を入力したとします。
Functionプロシージャでユーザー関数を作成し
B1で指定した文字がA1に存在するとき
その部分(A1内のBCの部分(2箇所))を赤色に変えたい。

ヒントだけでも結構ですので、ご教示いただければ幸いに存じます。

よろしくお願い申し上げます。

M.E

【78932】Re:セル内の文字の一部の色を変えたい
発言  γ  - 17/3/5(日) 21:25 -

引用なし
パスワード
   ユーザー定義関数で書式を変更することはできません。
ボタンにマクロを登録して、Activecellにそういう変更を加えることは可能です。
そういうことでよいでしょうか?

【78933】Re:セル内の文字の一部の色を変えたい
発言  β  - 17/3/5(日) 21:26 -

引用なし
パスワード
   ▼M.E さん:

基本的なことですけど、通常数式であれユーザー定義関数(UDF)であれ

★書式の設定はできません。

したがって、M.Eさんの構想は、残念ながらNGとなります。

やるとすれば、UDFといったものではなく、たとえばシートのChangeイベントで
A1 ないしは B1 に値が入った時に、自動的に、この処理を実行するといったことが
考えられます。

【78934】Re:セル内の文字の一部の色を変えたい
発言  γ  - 17/3/5(日) 22:00 -

引用なし
パスワード
   まずは、特定の文字の色を変更する動作を
「マクロ記録」してみてください。

それを元にして
繰り返し処理を考慮して、下記のようなコードを作ってみました。
部品として研究してみて下さい。

Sub test()
  Dim s As String
  Dim t As String
  Dim k As Long
  
  s = Range("A1").Value
  t = Range("B1").Value
  k = InStr(s, t)
  Do While k > 0
     Range("A1").Characters(Start:=k, Length:=Len(t)).Font.Color = RGB(255, 0, 0)
    k = InStr(k + Len(t), s, t)
  Loop
End Sub

【78935】Re:セル内の文字の一部の色を変えたい
お礼  M.E  - 17/3/6(月) 7:19 -

引用なし
パスワード
   早速のご返答、ありがとうございます。
恥ずかしながら、関数で書式が変えられないことを知りませんでした。
大変勉強になります。

β様のアドバイスやγ様のコードを基に、
試行錯誤してみようと思います。

途中、どうにも行き詰ってしまったら
また、投稿させてください。

今後とも、どうぞよろしくお願い申し上げます。

M.E

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