Excel VBA質問箱 IV

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

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


11584 / 13645 ツリー ←次へ | 前へ→

【15157】データラベルについて PO 04/6/16(水) 18:35 質問[未読]
【15184】回答じゃなくてごめん つん 04/6/17(木) 11:24 発言[未読]
【15185】Re:回答じゃなくてごめん PO 04/6/17(木) 11:34 質問[未読]
【15189】Re:回答じゃなくてごめん つん 04/6/17(木) 12:15 発言[未読]
【15190】あ・・・・ つん 04/6/17(木) 12:17 発言[未読]
【15230】Re:回答じゃなくてごめん PO 04/6/17(木) 17:14 質問[未読]
【15232】Re:回答じゃなくてごめん つん 04/6/17(木) 17:24 発言[未読]
【15239】Re:回答じゃなくてごめん PO 04/6/17(木) 18:13 お礼[未読]
【15297】Re:データラベルについて kein 04/6/19(土) 23:41 回答[未読]
【15316】Re:データラベルについて PO 04/6/21(月) 15:21 お礼[未読]

【15157】データラベルについて
質問  PO  - 04/6/16(水) 18:35 -

引用なし
パスワード
   はじめまして。
今、Excel VBA でグラフを作成しているのですが、
データラベルの出し方でとても困っています。

With ActiveChart
  .ApplyDataLabels Type:=xlDataLabelsShowLabelAndPercent
End With

とすると、データラベル名とそのパーセンテージを出してくれるのですが、
値が0のデータが二つあるときなどには、
重なってデータラベルを表示してしまいます。

データラベルの位置をずらす方法を教えていただきたいです。
よろしくお願いいたします。

【15184】回答じゃなくてごめん
発言  つん E-MAIL  - 04/6/17(木) 11:24 -

引用なし
パスワード
   PO さん、こんにちは。
はじめまして〜

回答じゃないです。ごめんなさい。

>With ActiveChart
>  .ApplyDataLabels Type:=xlDataLabelsShowLabelAndPercent
>End With
>
>とすると、データラベル名とそのパーセンテージを出してくれるのですが、
>値が0のデータが二つあるときなどには、
>重なってデータラベルを表示してしまいます。

これって、ドーナツグラフでされてるんですよね?
「xlDataLabelsShowLabelAndPercent」って確か、
ドーナツか円グラフでしか設定できなかったように思いますから。。。
確かに、こちらでもドーナツぐらいでやったら、重なって表示されました。
円グラフだったら、グラフの内部でなく、そとにラベルが表示されるので、
重ならず、「ここです」という線付きで(言ってる意味わかる?)表示されました。

ドーナツグラフでも同じようになればいいんですよね?
色々試行錯誤してみてるけど、上手くいかないなあ・・・・

まるで役にたたないレスですみません。
でも、これで上げておけば、また誰かの目にとまるかも〜

【15185】Re:回答じゃなくてごめん
質問  PO  - 04/6/17(木) 11:34 -

引用なし
パスワード
   ▼つん さん:

つんさん、こんにちは。
お返事、ありがとうございます!

>>With ActiveChart
>>  .ApplyDataLabels Type:=xlDataLabelsShowLabelAndPercent
>>End With
>>
>>とすると、データラベル名とそのパーセンテージを出してくれるのですが、
>>値が0のデータが二つあるときなどには、
>>重なってデータラベルを表示してしまいます。
>
>これって、ドーナツグラフでされてるんですよね?
>「xlDataLabelsShowLabelAndPercent」って確か、
>ドーナツか円グラフでしか設定できなかったように思いますから。。。

説明不足で申し訳ありません。
円グラフで設定しているのです・・・。

>確かに、こちらでもドーナツぐらいでやったら、重なって表示されました。
>円グラフだったら、グラフの内部でなく、そとにラベルが表示されるので、
>重ならず、「ここです」という線付きで(言ってる意味わかる?)表示されました。

円グラフだと、確かにグラフの内部でなく、
外にラベルが表示されます。
でも、「ここです」という線付きになっていないのですが、
線付きにする方法があるのでしょうか??

>ドーナツグラフでも同じようになればいいんですよね?
>色々試行錯誤してみてるけど、上手くいかないなあ・・・・
>
>まるで役にたたないレスですみません。
>でも、これで上げておけば、また誰かの目にとまるかも〜

お気遣い、ありがとうございます。
助かります♪

【15189】Re:回答じゃなくてごめん
発言  つん E-MAIL  - 04/6/17(木) 12:15 -

引用なし
パスワード
   どもども

>説明不足で申し訳ありません。
>円グラフで設定しているのです・・・。

あら・・・そうやったんか。

>円グラフだと、確かにグラフの内部でなく、
>外にラベルが表示されます。
>でも、「ここです」という線付きになっていないのですが、
>線付きにする方法があるのでしょうか??

んー、こちらでは特に指定したわけじゃなくて、
自然に線付きになってたんですけど・・・
すべてに線付きじゃなくて、0続いていたり、データがつんでたりする
場合のみ線付きになってました。
ちなみにこんなコード

Sub グラフ()

  Dim ch As ChartObject
  
  Set ch = ActiveSheet.ChartObjects.Add(100, 30, 400, 250)

  With ch.Chart
    .ChartType = xlPie
    .SetSourceData Source:=ActiveSheet.Range("a1:g2"), _
                 PlotBy:=xlRows
    .ApplyDataLabels Type:=xlDataLabelsShowLabelAndPercent
  End With
  
  Set ch = Nothing
  
End Sub

元データは

りんご    いちご    みかん    ばなな    めろん    ぶどう    れもん
 4     45     35     65     0     0     45

こんな感じ。
でも、グラフを作成してから、数字をでたらめにいじっていたら、
確かにラベルが重なったり、ぐちゃぐちゃになったりしてました。
POさんが作ってはるグラフのデータも、1つだけ飛び出て数字が大きいとか
そういうことないですか?

【15190】あ・・・・
発言  つん E-MAIL  - 04/6/17(木) 12:17 -

引用なし
パスワード
   >りんご    いちご    みかん    ばなな    めろん    ぶどう    れもん
> 4     45     35     65     0     0     45

ここんとこぐちゃぐちゃ・・・
頭の中で整理して読んでね(^^;
ごめんなさい。

【15230】Re:回答じゃなくてごめん
質問  PO  - 04/6/17(木) 17:14 -

引用なし
パスワード
   ▼つん さん:

つんさん、回答ありがとうございます!

>でも、グラフを作成してから、数字をでたらめにいじっていたら、
>確かにラベルが重なったり、ぐちゃぐちゃになったりしてました。
>POさんが作ってはるグラフのデータも、1つだけ飛び出て数字が大きいとか
>そういうことないですか?

そうなんです。
ラベルが重なったり、ぐちゃぐちゃになったり、
1つだけ飛び出して数字が大きく表示されたりしています・・・。
項目が多くなればなるほど、
(つんさん式に言うと、いちご・メロン・みかん など)
ぐちゃぐちゃになってしまいます。

ラベルの位置って手動に変えれたりするのかなと思って、
いろいろ探してみたのですが、見つからなくて・・・・。

【15232】Re:回答じゃなくてごめん
発言  つん E-MAIL  - 04/6/17(木) 17:24 -

引用なし
パスワード
   >>でも、グラフを作成してから、数字をでたらめにいじっていたら、
>>確かにラベルが重なったり、ぐちゃぐちゃになったりしてました。
>>POさんが作ってはるグラフのデータも、1つだけ飛び出て数字が大きいとか
>>そういうことないですか?
>
>そうなんです。
>ラベルが重なったり、ぐちゃぐちゃになったり、
>1つだけ飛び出して数字が大きく表示されたりしています・・・。
>項目が多くなればなるほど、
>(つんさん式に言うと、いちご・メロン・みかん など)
>ぐちゃぐちゃになってしまいます。

あー、ええと、私が言う「1つだけ飛び出て数字が大きい」っていうのは、
一つの項目だけ桁が段違いに大きいとか・・・って意味だったんだけど、
POさんのは、フォントサイズが大きく表示されちゃうってことですか?

うちでは、とりあえず上手くいってるんだけどなあ・・・
なんでかなあ?

例えば、私がサンプルで使ったような単純なデータを使って
試しにやってみたらどうですか?

>ラベルの位置って手動に変えれたりするのかなと思って、
>いろいろ探してみたのですが、見つからなくて・・・・。

手でいっこいっこずらしていったりは出来るけど、
それをコードで書くっちゅーのは、出来るんやろか?
うーーーーん(>_<)

【15239】Re:回答じゃなくてごめん
お礼  PO  - 04/6/17(木) 18:13 -

引用なし
パスワード
   ▼つん さん:
>>そうなんです。
>>ラベルが重なったり、ぐちゃぐちゃになったり、
>>1つだけ飛び出して数字が大きく表示されたりしています・・・。
>>項目が多くなればなるほど、
>>(つんさん式に言うと、いちご・メロン・みかん など)
>>ぐちゃぐちゃになってしまいます。
>
>あー、ええと、私が言う「1つだけ飛び出て数字が大きい」っていうのは、
>一つの項目だけ桁が段違いに大きいとか・・・って意味だったんだけど、
>POさんのは、フォントサイズが大きく表示されちゃうってことですか?

フォントサイズが大きく表示されることはないです(汗)。
たとえば、

りんご:100
いちご:0
めろん:0
みかん:0
もも :0

という構成になっていると、りんごが100%で円を
すべて埋めることになると思いますが、
「いちご」「めろん」「みかん」「もも」が0%なので
上記の4項目のデータラベルが重なって表示されているんです。

それで「りんご」に対して、
「1つだけ飛び出て数字が大きい」
という意味で書きました。

すいません、文章力がないですね・・・・。


>うちでは、とりあえず上手くいってるんだけどなあ・・・
>なんでかなあ?
>
>例えば、私がサンプルで使ったような単純なデータを使って
>試しにやってみたらどうですか?

はい。
値がばらけている時はうまくいくことは、確認できました!

>>ラベルの位置って手動に変えれたりするのかなと思って、
>>いろいろ探してみたのですが、見つからなくて・・・・。
>
>手でいっこいっこずらしていったりは出来るけど、
>それをコードで書くっちゅーのは、出来るんやろか?
>うーーーーん(>_<)

こうなったら、
「データラベルが重なって表示されていたら、手でずらしてね!」って
ことにします(笑)

つんさん、本当にありがとうございました!

【15297】Re:データラベルについて
回答  kein  - 04/6/19(土) 23:41 -

引用なし
パスワード
   ヘルプを抜粋しておきます
---------------------------------------------------------------------
Position プロパティ

指定されたオブジェクトの位置を設定します。使用できる定数を次に示します。
値の取得および設定が可能です。長整数型 (Long) の値を使用します。

オブジェクト 位置
DataLabel、
DataLabels データ ラベルの位置です。
使用できる定数は、XlDataLabelPosition クラスの
xlLabelPositionAbove
xlLabelPositionBelow
xlLabelPositionBestFit
xlLabelPositionCenter
xlLabelPositionCustom
xlLabelPositionInsideBase
xlLabelPositionInsideEnd
xlLabelPositionLeft
xlLabelPositionMixed
xlLabelPositionOutsideEnd
xlLabelPositionRight
のいずれかです。
------------------------------------------------------------------------
あとは各Pointに付くデータラベルをひとつずつ指定して、Left, Top の値を設定
するとか・・。これは試行錯誤しないと、満足な位置に移動できないでしょうね。
とにかく出来ることといえば、これぐらいしか無いようですが。

【15316】Re:データラベルについて
お礼  PO  - 04/6/21(月) 15:21 -

引用なし
パスワード
   Keinさん

お礼のメールが遅れてしまい、申し訳ございません。

Positionプロパティが使えるんですね!
早速、試してみたいと思います。

ありがとうございました!

▼kein さん:
>ヘルプを抜粋しておきます
>---------------------------------------------------------------------
>Position プロパティ
>
>指定されたオブジェクトの位置を設定します。使用できる定数を次に示します。
>値の取得および設定が可能です。長整数型 (Long) の値を使用します。
>
>オブジェクト 位置
>DataLabel、
>DataLabels データ ラベルの位置です。
>使用できる定数は、XlDataLabelPosition クラスの
>xlLabelPositionAbove
>xlLabelPositionBelow
>xlLabelPositionBestFit
>xlLabelPositionCenter
>xlLabelPositionCustom
>xlLabelPositionInsideBase
>xlLabelPositionInsideEnd
>xlLabelPositionLeft
>xlLabelPositionMixed
>xlLabelPositionOutsideEnd
>xlLabelPositionRight
>のいずれかです。
>------------------------------------------------------------------------
>あとは各Pointに付くデータラベルをひとつずつ指定して、Left, Top の値を設定
>するとか・・。これは試行錯誤しないと、満足な位置に移動できないでしょうね。
>とにかく出来ることといえば、これぐらいしか無いようですが。

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