Excel VBA質問箱 IV

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

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


13284 / 13644 ツリー ←次へ | 前へ→

【6085】フォントの色設定なんですが... しんのすけ 03/6/16(月) 12:03 質問
【6106】Re:フォントの色設定なんですが... 角田 03/6/16(月) 17:23 回答
【6147】有難うございます。 しんのすけ 03/6/17(火) 17:26 お礼
【6149】Re:有難うございます。 角田 03/6/17(火) 17:36 回答

【6085】フォントの色設定なんですが...
質問  しんのすけ  - 03/6/16(月) 12:03 -

引用なし
パスワード
   最近VBAを始めたばかりで、周囲にもあまり詳しい人がいてなくて、少し躓いています。
 コンボボックスで選択したものに対して、それぞれに別のフォントカラーを設定する。
コマンドボタンでセルに書き込み、また、違う色を選択して同一セル内に追加したいのですが思うように動きません。

例えば 赤を選択して、セルに書込み、次に青を選択して同一セルに追加する。
ここまではちゃんと動作するのですが、その後にまた赤を選択すると、前に選択していた青が赤に変わってしまうのです。

前に選択しているものを、固定できる良い案は無いでしょうか?

【6106】Re:フォントの色設定なんですが...
回答  角田 WEB  - 03/6/16(月) 17:23 -

引用なし
パスワード
   こんにちは。
文字列追加した後は、1文字ごとの色情報が失われるようだから、
頭から順に記憶しといて、追加後に再度1文字ずつ戻してやらないと
ダメみたいですね。

Dim i As Integer
Dim j As Integer
Dim MyArray() As Integer
With Range("A1")
  j = Len(.Value)
  ReDim MyArray(1 To j)
  For i = 1 To j
    MyArray(i) = .Characters(i, 1).Font.ColorIndex
  Next i

  .Value = .Value & "ABCD"
  
  Application.ScreenUpdating = False
  For i = 1 To j
    .Characters(i, 1).Font.ColorIndex = MyArray(i)
  Next i
  .Characters(j + 1).Font.ColorIndex = 5
  Application.ScreenUpdating = True
End With

【6147】有難うございます。
お礼  しんのすけ  - 03/6/17(火) 17:26 -

引用なし
パスワード
   有難うございます。
 すごく参考になったのですが、あのソースだとセルに何かを与えとかないと、デバックが生じますね。
何か、方法はありませんか?
勝手を言って申し訳ありません。

【6149】Re:有難うございます。
回答  角田 WEB  - 03/6/17(火) 17:36 -

引用なし
パスワード
   こんにちは。
>セルに何かを与えとかないと、デバックが生じますね。
>何か、方法はありませんか?
そのセルが空白かどうかを判定して分岐すれば良いと思いますが‥‥‥

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