アプリ版:「スタンプのみでお礼する」機能のリリースについて

通常の積上げ横棒グラフ(100%積上げではなく)で値と比率を同時に表示させるにはどうしたらいいでしょうか。30(20%)のような。

過去ログから%表示させるにはVBAを使った方が早いとのことでそのままコピペしたのですが
値も同時に。となるとマクロ初心者の身としましては手が着けられなく・・・。

過去ログです↓
http://oshiete.goo.ne.jp/qa/4040147.html

また、系列の追加はありませんが、今後項目が追加されてしまうのが予想できてしまうので
自動更新をVBAに組み込むことはできるのでしょうか。

テキストボックスに参照式を入れ込んでデータ一件ごとに貼り付けてみました。
しかし、項目が多く遠い目になってしまったので
なんとかできないものだろうかと思い質問させていただきました。

どなたかお知恵をお貸しいただけますでしょうか。

A 回答 (2件)

>>No.1 この回答へのお礼


>二項目目以降の%値が合致しません。
合計値の初期化を忘れていました。

For i = 1 To np
pval = 0 '★要素合計値の初期化
For j = 1 To ns
yval = .SeriesCollection(j).values
pval = pval + yval(i)
Next j
For j = 1 To ns
With .SeriesCollection(j).Points(i).DataLabel
.TEXT = .TEXT & " (" & format(Val(.TEXT) / pval, "0.0%") & ")"
End With
Next j
Next i

>VBAでできたら良いなぁと思っています。
思っているだけでは実現できません。
紹介した過去ログの回答コードを参考に応用してみてください。

因みに下記の処でセル参照式をセットしています。
.TEXT = "=" & ws & "!" & Range(xadr)(i).Offset(, 1).Address
上記は
.TEXT = "=データシート名!データセル番地"
といった内容です。
リンク参照したいデータ表のレイアウトが問題です。
上記の例では元データセルから1列横のセルを指定しています。
    • good
    • 0
この回答へのお礼

お礼が遅くなりまして大変申し訳ございません。

いただいたコードで解決いたしました!
VBA初心者のため、いただいたコードを解析することから勉強していきます!

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

お礼日時:2012/06/12 15:05

取りあえず、データラベルに値と%値を表示する例です。


(例1)
Dim yval As Variant, pval As Variant
Dim stxt As String
Dim ns As Long, np As Long
Dim i As Long, j As Long, k As Long

With ActiveChart
ns = .SeriesCollection.Count
np = .SeriesCollection(1).Points.Count

For i = 1 To ns
With .SeriesCollection(i)
.HasDataLabels = True
.ApplyDataLabels Type:=xlValue
End With
Next i

For i = 1 To np
For j = 1 To ns
yval = .SeriesCollection(j).values
pval = pval + yval(i)
Next j
For j = 1 To ns
k = k + 1
With .SeriesCollection(j).Points(i).DataLabel
.TEXT = .TEXT & " (" & format(Val(.TEXT) / pval, "0.0%") & ")"
End With
Next j
Next i
End With

>テキストボックスに参照式を入れ込んでデータ一件ごとに貼り付けてみました。
データラベルを使えば良いと思います。
データセルをリンク参照表示するなら
=データセル&"("&%値セル&")"
といったような式でデータと%値を結合したセルを用意して置きます。
そして上記セルとデータラベルをリンクするようにします。
≪参考≫
エクセル2007 棒グラフの中に別のデータを表示
http://oshiete.goo.ne.jp/qa/6400372.html

>今後項目が追加されてしまうのが予想できてしまうので
>自動更新をVBAに組み込むことはできるのでしょうか。
ワークシートのイベントプロシージャを使う事になると思います。
≪参考≫
Excel(エクセル) VBA入門:ワークシートのイベント
http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vb …
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
早速出社し、VBAを実行したのですが、
別シートに参考のために%値をだしておいたものとVBA実行後のデータを参照すると最初の一項目目の%は一致しますが、二項目目以降の%値が合致しません。

それぞれ一項目を100%とした場合の値と%値を同時表示させたいのですがどうしたらよいのでしょうか。

>データラベルを使えば良いと思います。
たしかにそうでした・・・。
やはり一項目ごとに設定すると恐ろしく時間がかかってしまいそうなのでVBAでできたら良いなぁと思っています。

またまたお知恵をお貸しいただけるとうれしいです。

お礼日時:2012/06/07 11:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!