• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel グラフのデータラベルについて)

Excelのグラフのデータラベルについて

このQ&Aのポイント
  • Excelのグラフのデータラベルについて質問です。データラベルに条件付き書式のような設定はできますでしょうか?
  • Excel2007にて、縦棒グラフを作成し、データラベルを表示させています。指定の数値以上の場合は赤く表示する設定はできるのでしょうか?
  • グラフ作成用の元データには、条件付き書式を適用させる事ができたのですが、その設定をそのままグラフのデータラベルに反映する事はできないようです。マクロを使って設定する方法はあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

VBAならできるかもしれない。 私も、日ごろ使い倒しているわけでないので、質問の内容を十分捉えていないかもしれないが、 データ例 A1:B4 品名 数量 a 23 b 44 c 37 ーー 棒グラフを描く。    グラフ    ラベルあり、数量 表示 目    棒 =>3本     グ 盛   ラ     フ ーーーーー 品物=>a b c といったグラフができる。(今回は、あれもこれもの学習にならないために、手動でグラフ作成を行う。) ーー グラフが書けたあと、グラフ部分をクリックして、アクチブにして!、ここで VBE画面に標準モジュールを挿入して Sub test03() For i = 1 To 3 With ActiveChart.SeriesCollection(1).Points(i) v = .DataLabel.Text If v > 30 Then .DataLabel.Interior.Color = vbGreen .DataLabel.Font.Color = vbRed Else .DataLabel.Interior.Color = vbYellow End If End With Next i End Sub をコピペして、実行する。 ラベルの四角枠内の色と ラベル内の文字の色が 値30を境に変わるはず。 フラフ各部分をVBAでどう表現するか、など学習しにくい点はある。 正式な日本語の名称を知って、WEB記事を調べる マクロの記録で出た、VBAのコードが表現してくれるかもしれない。活用するのがよい。

coko8686
質問者

お礼

早速のご回答ありがとうございました。 初めてVBAを利用しましたが、 ご教授いただきましたコードをコピペさせて頂き、実行いたしました所 思っていたとおりの動きになりました! これなら、手動でひとつづつ数字を見て色を変えて… など、やらずに済みそうです。 分かりづらい質問だったにもかかわらず、 意図をくみ取り、的確なアドバイスをして頂き、ありがとうございました!

その他の回答 (1)

回答No.2

やはりマクロ、VBAでしょう。 挑戦なさるとの事ですから、私からも微力ながら。 VBA(for EXCEL)の学習をするにあたり、最も重要なのは 1番さんもおっしゃる通り、エクセルの機能や動きを しっかり理解することだと私も思っています。 その上でWebで調べるなり、他さんに聞くなり、 あるいはご自身で手を動かしてみるなりの アクションをかませながら進めていくと良いと思いますよ。 エクセルには「マクロの記録」という便利な機能があります。 ※詳細は別途お調べくださいね。 それを使いつつ、基本機能を操作して記録しつつ、 「どの動作をしたら(エクセル的には)どんなコードが書かれるか」を ちゃんと意識しながら読んでいくと学習しやすいですね。 なお、私はいわゆる「ハウツー本」は積極的にオススメしない派です。 本を眺めるならWebで調べるほうが良いですよ、多分。 さて、命題。 上記の手法に倣って、「マクロの記録」で情報を集めて、 それを(おそらく)使いやすく少しだけ書き換えたものです。 Sub Sample()   With ActiveChart     For i = 1 To .FullSeriesCollection(1).Points.Count       With .FullSeriesCollection(1).Points(i).DataLabel         Select Case .Text           Case Is >= 15             .Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 0, 0)             'MsgBox "15以上は赤い文字"           Case Else             .Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 0, 255)             'MsgBox "それ以外は青い文字"         End Select       End With     Next   End With End Sub これをVBEで標準モジュールに書き込み、 該当の「データラベルが表示されている」グラフをアクティブ(選択)にした状態で動かしてみます。 「指定の数値」が判らないので、15以上で分岐させています。  ※指定の数値っておいくつ?濁す必要あります?   この手の質問でいつも思うことです。 書き方の参考例の一つとしてどうぞ。 追記(蛇足) ピンポイントでこの手の処理を説明している「書籍」を「探す」のは困難です。 それであれば「マクロの記録」をしつつ、Webでピンポイントで補足しつつ 自分の書き方に変えていく方が効率は断然良いです。 ・・・私の書き方が効率良いかどうかは別な話ですけどね(笑)。

coko8686
質問者

お礼

ご回答ありがとうございました。 ご教授いただきましたコードをコピペさせていただきました所、 FullSeriesCollectionの所でエラーとなってしまい、 試しにFullを削除し、SeriesCollectionだけにしてみたところ、 やりたい動きになりました!ありがとうございます! >※指定の数値っておいくつ?濁す必要あります? 確かに!具体的な数字がないと、分かりづらいですよね…。 失礼いたしました。 >「マクロの記録」をしつつ、Webでピンポイントで補足しつつ >自分の書き方に変えていく方が効率は断然良い なるほど、確かにとても効率がよく、かつ身につきやすい方法ですね。 全然蛇足ではございません! アドバイスありがとうございました!

関連するQ&A