過去ログ

                                Page     761
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼続・グラフの作成  つん 03/2/18(火) 10:41
   ┗Re:続・グラフの作成  つん 03/2/18(火) 12:12

 ───────────────────────────────────────
 ■題名 : 続・グラフの作成
 ■名前 : つん <honey@sweetparty.ne.jp>
 ■日付 : 03/2/18(火) 10:41
 -------------------------------------------------------------------------
   おはようございます。
昨日に引き続き、グラフの件で質問させていただきます。

昨日JuJuさんに回答いただき、素の状態の円グラフまでは描けました。
今、それにデータラベルを書き込む時点で、また躓いてしまいました。
助けてくださいませ。

今できている段階のコードです。(小さな円グラフをいくつも描くのでサブルーチンにしてコールしてます)
'==============================================
For Each ws In Worksheets
 With ws

  Set r = .Range(.Cells(16, 1), .Cells(20, 1))
   'あんまり狭いからちと広げてみました
  Set rChart = .Range(.Cells(46, 2), .Cells(47, 2))
      
  Call Himura(ws, r, rChart)

 End With
Next ws
'==============================================
Private Sub Himura(arg_ws As Worksheet, arg_r As Range, arg_rChart As Range)

  With arg_ws.ChartObjects.Add( _
    Left:=arg_r.Left, _
    Top:=arg_r.Top, _
    Width:=arg_r.Width, _
    Height:=arg_r.Height)
    
    With .Chart
      .SetSourceData Source:=arg_rChart, PlotBy:=xlColumns
      .ChartType = xlPie
      .HasLegend = False '凡例を表示しない
      .ChartArea.Border.LineStyle = xlNone 'グラフエリアの線をとる
      .PlotArea.ClearFormats 'プロットエリアの書式のクリア
      .ApplyDataLabels 'ラベルの作成
      .SeriesCollection(1).Points(2).DataLabel.Text = ""
      '2つ目のラベルは削除
      With .SeriesCollection(1).Points(1).DataLabel
        .Text = arg_rChart(1).Text
        .Font.Size = 6
      End With
    End With
    
  End With

End Sub

これで実行すると、確かに、1つ目のデータラベルだけ表示されるのですが、プロットエリアがひどく小さくなり(円グラフがめっちゃ小さくなってしまう)、ラベルも縦書き・・とはではいかないのですが、非常に読みにくい、体裁の悪い形になってしまいます。

もともとグラフをはめ込むスペースが小さいので、なかなか体裁良く・・とはいかないかもしれませんが、今のままではあまりにも円が小さく不格好です。

そのへんを調整するには、どう設定すればいいでしょうか?

よろしくお願いします。
 ───────────────────────────────────────  ■題名 : Re:続・グラフの作成  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 03/2/18(火) 12:12  -------------------------------------------------------------------------
   すんません。
自己解決しました。

>      With .SeriesCollection(1).Points(1).DataLabel
        .Position = xlLabelPositionInsideEnd
>        .Text = arg_rChart(1).Text
>        .Font.Size = 6
>      End With

上記のように、データラベルをグラフの中に入れたらOKでした。
グラフは、一般操作でもあまり扱ったことなくて、
そういう設定が出来ることもわかってへんかったです(^^;
それ発見して、マクロの自動記録で出来ました。
あとは、グラフの色をちょっと調整してやれば、なんとか出来そうです。

ただ・・・グラフエリアに対して、やっぱりプロットエリアが狭い感じ・・・
もともと狭い個所に描くので、できたらもう少し広く出来たらいいのになあ。
そのへん、もう少し工夫できるか頑張ってみます。
また、よいやり方ありましたら、教えていただけたら嬉しいです。
よろしくお願いします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 761