通常の積上げ横棒グラフ(100%積上げではなく)で値と比率を同時に表示させるにはどうしたらいいでしょうか。30(20%)のような。
過去ログから%表示させるにはVBAを使った方が早いとのことでそのままコピペしたのですが
値も同時に。となるとマクロ初心者の身としましては手が着けられなく・・・。
過去ログです↓
http://oshiete.goo.ne.jp/qa/4040147.html
また、系列の追加はありませんが、今後項目が追加されてしまうのが予想できてしまうので
自動更新をVBAに組み込むことはできるのでしょうか。
テキストボックスに参照式を入れ込んでデータ一件ごとに貼り付けてみました。
しかし、項目が多く遠い目になってしまったので
なんとかできないものだろうかと思い質問させていただきました。
どなたかお知恵をお貸しいただけますでしょうか。
No.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列横のセルを指定しています。
お礼が遅くなりまして大変申し訳ございません。
いただいたコードで解決いたしました!
VBA初心者のため、いただいたコードを解析することから勉強していきます!
本当にありがとうございました!
No.1
- 回答日時:
取りあえず、データラベルに値と%値を表示する例です。
(例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 …
早速のご回答ありがとうございます。
早速出社し、VBAを実行したのですが、
別シートに参考のために%値をだしておいたものとVBA実行後のデータを参照すると最初の一項目目の%は一致しますが、二項目目以降の%値が合致しません。
それぞれ一項目を100%とした場合の値と%値を同時表示させたいのですがどうしたらよいのでしょうか。
>データラベルを使えば良いと思います。
たしかにそうでした・・・。
やはり一項目ごとに設定すると恐ろしく時間がかかってしまいそうなのでVBAでできたら良いなぁと思っています。
またまたお知恵をお貸しいただけるとうれしいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのグラフに上下限値の横棒を表示させたい 5 2022/12/12 11:09
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Excel(エクセル) Excelグラフについて 1 2023/05/12 16:26
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Excel(エクセル) エクセル VBAでBook モジュールのプロシージァ(コード)に除外シートを設定したい 1 2023/01/11 15:53
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのセル内でタブキーの...
-
エクセルで空白のセルに自動で...
-
エクセル 文字の先頭4文字だ...
-
エクセルの神よ、ご回答を! エ...
-
HTML形式の表を、Excel形式に...
-
エクセル データ追加するもグ...
-
エクセルVBA 長さ0の文字列をNu...
-
日報のデータを月報にデータを...
-
散布図や折れ線グラフにエラー...
-
エクセルのセル内の文字の一部...
-
エクセル2000:phonetic関数で...
-
エクセルで関数グラフを描きた...
-
エクセルのセルに差し込み設定...
-
エクセルの複数セルをコピーし...
-
ウェブから貼ったドロップダウ...
-
エクセルで全波整流回路の波形
-
ワードの差込印刷でエクセルか...
-
エクセルでJ6 O6 T6の平均値を...
-
エクセルのグラフでデータテー...
-
エクセルのセルが突然選択でき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのセル内でタブキーの...
-
エクセルの神よ、ご回答を! エ...
-
エクセルで3Dの円錐形を作成...
-
エクセル 文字の先頭4文字だ...
-
エクセル データ追加するもグ...
-
エクセルのグラフでデータテー...
-
エクセルオンラインのみ勝手に...
-
エクセルVBA 長さ0の文字列をNu...
-
差し込み印刷で文字化け!
-
文字をアルファベット順に3つ...
-
日報のデータを月報にデータを...
-
VBA初心者です。電話番号の数字...
-
エクセルにて指定文字数以上の...
-
エクセルのセル内の文字の一部...
-
VBでリアルタイムにグラフを...
-
エクセル2000:phonetic関数で...
-
文字を入力するだけで、強制終...
-
#DIV/0!があるデータの折れ線...
-
ウェブから貼ったドロップダウ...
-
エクセルのデータを自動的にweb...
おすすめ情報