- 締切済み
Excelで色のついたセルの文字列を変更したいです。
今、Excelを使って評価表を作っています。 その中で各項目の上位数値のセルに分かりやすく色をつけているんですが、 そのデータをHTML化するので、その項目を同じように強調したいのです。 分かりやすく示すと、 名前 *1 *2 *3 *4 *5 (回) Aさん 86 65 87 54 98 Bさん 77 55 54 87 88 Cさん 45 87 90 76 76 ・ ・ ・ こういうものであれば、各回のトップ10まで数値のセルに色をつけます。 そしてその色のついたセルに 『<font color=red>数値</font>』(数値には1回目であればAさんの86)としたいのです。 少しの量であれば手打ちで変更してもいいのですが、 今では色の付いた項目が結構な量なのでなかなか難しいものがあります。 そこで、何か関数や式を使って色の付いたセルがあれば一括して セルの書式を『数値』から『<font color=red>数値</font>』に変更する方法はないでしょうか? 分かりにくい説明で申し訳ありませんが、分かる方がいましたらお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 #2の回答者です。 >あくまでもExcelでの文字列をコピーして、メモ帳などに貼り付けて >それをhtmlファイルとして保存するという形です。 説明不足というよりは、方法論の問題です。Excelの出力でないのでしたら、MS-Office では無縁な世界の話だと思います。Excelに、HTMLの出力はあるのはご存知ではないのでしょうか? あくまでも、テキストソースを加工するなら、テキストストリーム系ですから、一括でするならPerlなどで正規表現スクリプトを作って置換などすればよいのですが、MS-Office で、今の状況を解決したいとおっしゃっても、この範疇の外の話です。ここの質問では、あくまでも、MS-Office のアプリケーション内で処理できる範囲にしてください。 手作業は手作業でも、HTMLエディタの何かよいものを探してお使いにでもなったらいかがですか?
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >Excelで色のついたセルの文字列を変更したいです。 カテゴリのMS-Office のExcelというのは正しいですか? 今、Excelで、HTML指定で再度試してみましたが、スタイル設定になって、そのようなHTMLコードは出てきません。Excelでの出力でないHTMLファイルは、実質的にはExcelの範疇ではありません。 通常のWeb で使われるHTMLソースに、その条件によって色をつけるというのは、もしかしたらマクロで出来るけれども、HTMLコードから、正確に内容を読み込み、読み出しというのは、ソースなしでコードを作るのは、事実上、不可能です。 それに、テストランを繰り返さなくてはなりませんし、マクロを使う合理性というものがありません。こういう場合は、概ね、手作業のほうが早く仕上がるのです。 そんなことをするよりも、簡単なことですが、一旦、Excelに読み込んで、条件付き書式で加工して、HTMLフォーマットに出力すればよいと思います。ただ、元のソースは失ってしまいます。
補足
回答ありがとうございます。 説明不足で申し訳ありません。 Excelから直接htmlファイルに関連付けているわけではなく、 あくまでもExcelでの文字列をコピーして、メモ帳などに貼り付けて それをhtmlファイルとして保存するという形です。 回答のNo.1の補足と同じになりますが、 Excelで計算用のワークシートとメモ帳にコピペするためのソース用のワークシートがあり、 計算用の各回項目の数値をコピーしてソース用のワークシートに貼り付けています。 計算用のワークシートは Aさん 86 65 87 54 98 Bさん 77 55 54 87 88 Cさん 45 87 90 76 76 になっていて、 ソース用のワークシートは <table> <tr><td> Aさん <td> 86 <td> 65 <td> 87 <td> 54 <td> 98 <tr><td> Bさん <td> 77 <td> 55 <td> 54 <td> 87 <td> 88 <tr><td> Cさん <td> 45 <td> 87 <td> 90 <td> 76 <td> 76 </table> という感じになっています。空白ごとにセルが変わっていると考えてください。 そして出来上がったソース用のワークシートをコピーして、htmlファイルのソースに貼り付けています。 つまり計算用のワークシートの1回目の項目の 86 77 45 をコピーして、ソース用のワークシートに貼り付けています。 もちろんセルの色もそのままコピペしますので、86のセルは色が付きます。 以下、同じように2回目、3回目をコピー&ペーストしていきます。 そしてできあがったものを、 そのままメモ帳にコピペして.htmlで保存すると、 全ての項目が普通に表示されてしまい上位の数値がどれか 見にくいままなので、上位の数値のセルを『<font color=red>数値</font>にしたいのです。 >通常のWeb で使われるHTMLソースに、その条件によって色をつけるというのは・・・ ソースに色をつけるというわけではなく、『<font color=red>数値</font>』として、 IEなどのブラウザ上で見たときに数値が赤く表示されるということです。
- zap35
- ベストアンサー率44% (1383/3079)
質問がよく理解できませんが、各回のテストの上位10名の文字色を赤色に変更すればよいのではないでしょうか。そうすればHTMLに変換しても文字色は赤色のままHTMLになります それには条件付き書式を使用します。Aさんの一回目(B2セル、86点)のセルを選択し、「書式」→「条件付き書式」を選択し、「セルの値が」を「数式が」に変更します 数式に =RANK(B2,B$2:B$100)<=10 と入力し、「書式」ボタンでフォントの赤に色を変えます そのセル(B2)をコピーして他のセルを選択し「編集」→「形式を選択して貼り付け」→「書式」で貼り付けると、各列のトップ10は赤文字になるはずです これをHTMLにしてください
補足
回答ありがとうございます。 説明足らずで申し訳ありません。 HTML化するというのはhtmlファイルがあり、そのソースの一つとして 『86』という数値を『<font color=red>数値</font>』に変換したいのです。 Excelで計算用のワークシートとhtml化するためのソース用のワークシートがあり、 計算用の各回項目の数値をコピーしてソース用のワークシートに貼り付けています。 簡単に説明すると、 計算用のワークシートは Aさん 86 65 87 54 98 Bさん 77 55 54 87 88 Cさん 45 87 90 76 76 になっていて、 ソース用のワークシートは <table> <tr><td> Aさん <td> 86 <td> 65 <td> 87 <td> 54 <td> 98 <tr><td> Bさん <td> 77 <td> 55 <td> 54 <td> 87 <td> 88 <tr><td> Cさん <td> 45 <td> 87 <td> 90 <td> 76 <td> 76 </table> という感じになっています。空白ごとにセルが変わっていると考えてください。 そして出来上がったソース用のワークシートをコピーして、htmlファイルのソースに貼り付けています。 つまり計算用のワークシートの1回目の項目の 86 77 45 をコピーして、ソース用のワークシートに貼り付けています。 以下、同じように2回目、3回目をコピー&ペーストしていきます。 ただソース用のワークシートにはトップ10の数値を赤字で表示させたいので、 ただ単に「数値」をコピーするだけではなく、 「<font color=red>数値</font>」と書き直さなければならないのです。 少しの量であれば手打ちで変更してもいいのですが、 結構な量があるので関数や式・マクロを使って何とかできないかと思った次第です。
お礼
マクロのユーザー定義でセルの色を取得したあと、 IF文を使ってセル内の文字列を変更できました。 いろいろと回答していただきありがとうございました。
補足
回答ありがとうございます。 >Excelに、HTMLの出力はあるのはご存知ではないのでしょうか? Webページとして保存することでしょうか?これだと確かにhtmlファイルとして保存できますが、 Excelで作った評価表は既に作ってあるhtmlファイルの構成の一部分としての表示させるので、 どうしてもExcelで作った評価表を単体でWebページを保存することはしたくありません。 >あくまでも、テキストソースを加工するなら、テキストストリーム系ですから、・・・ すいません、私の知識不足でちゃんと理解できないのですが、 私がしたいことはもっとシンプルな話しで、 色をついているセル(塗りつぶし)とそうでないセルを判別して、 色のついているセルには数値(文字列)の前後に決まった文字列を追加したいだけなんです。 その判別をして、決まった文字列を追加するための関数や式が分かればと思い、こちらで質問させていただきました。 MS-Officeでは範疇の外の話ということですが、 Excelではセルの塗りつぶしの有無を判別してそのセルの中身を変更することはできないということでしょうか?