![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VBAにてグラフ作成をしています。
現在Office365にて作成していますが、Office2016でも使えるようにしたいです。
VBAの内容としては、データファイルを開き、2種類のグラフ(散布図・ヒストグラム)を
作成中です。
今ヒストグラムで下記画像のようなグラフにしたくマクロ記録を参考に下記コードを実行させましたが
エラーはしませんがヒストグラムに反映いたしません。
また表示形式の小数点以下桁数を1桁にしたいのですがマクロ記録で出てきません。
そもそもVBAでは対応できないのでしょうか?
ご教示お願いいたします。
説明不足でしたら補足いたします。
よろしくお願いします。
ActiveSheet.ChartObjects("グラフ 2").Activate
ActiveSheet.Axes(xlCategory).Select
ActiveSheet.ChartGroups(1).BinsType = xlBinsTypeBinCount
ActiveSheet.ChartGroups(1).BinsCountValue = 11
ActiveSheet.ChartGroups(1).BinsOverflowEnabled = True
ActiveSheet.ChartGroups(1).BinsOverflowValue = 0
![「VBAにてヒストグラム作成にて困っていま」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/0/542965937_5eb5eca1ec266/M.jpg)
No.3ベストアンサー
- 回答日時:
No.1です。
No.2の返信欄に記載されたコードの1~3行目(桁数変更)を最下部に移動させたらどうでしょうか?
4行目以降は質問者さんが作成されたものなので、成功実績がありうまくいくかと思います。
※こちらではグラフの種類が違うためか、エラーになってしまい確認できていません。
googoo900さん
ご回答ありがとうございます。
Oiffce 365で下記のように修正しました。
しかし少数点しか反映しませんでした。
まだExcel2016で実施していないので、一度確認してみます。
献身的に教示いただきありがとうございます。
修正コード
ActiveSheet.ChartObjects("?O???t 2").Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.ChartGroups(1).BinsType = xlBinsTypeBinCount
ActiveChart.ChartGroups(1).BinsCountValue = 11
ActiveSheet.ChartObjects("?O???t 2").Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.ChartGroups(1).BinsOverflowEnabled = True
ActiveChart.ChartGroups(1).BinsOverflowValue = 2
ActiveSheet.ChartObjects("?O???t 2").Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.ChartGroups(1).BinsUnderflowEnabled = True
ActiveChart.ChartGroups(1).BinsUnderflowValue = 0
ActiveSheet.ChartObjects("?O???t 2").Activate
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.NumberFormatLocal = "0.0_ "
No.4
- 回答日時:
こんばんは、
現在も、ヒストグラムチャートについてExcel2016VBAは、完全にフォローしていない可能性が高いです。
>上記をマクロ記録しことをVBAで実行したのですが、エラーしませんがグラフに反映されません。
>またX軸の表示形式がマクロ記録されません。
同様の事象は、対応していないのが原因の可能性があります。
しかし、すでに(または、次の年次)Excel2016のアップデートで対応されているかも知れません。(期待は出来ません)
Excel組み込みのヒストグラムは、動的なソースデータにはあまり適していないと思いますし
Excel2016ヒストグラムについては、不具合もあるようなので、
VBAでビンを生成し、データを数式(またはVBA)で集計してから、
標準の縦棒グラフをプロットする方法などを検討した方が良いかも知れません。
また、Excel2016以降のExcelでないと検証も出来ないので、難しいです。
MSの専門的なサイトへあげて見るのは、いかがでしょう。
https://social.msdn.microsoft.com/Forums/ja-JP/h …
Qchan1962さん
ご回答ありがとうございます。
ヒストグラムはExcel組み込みでは適していないのですね。
VBAの知見がなく色々勉強なりました。
自分のできる範囲で、引き続き進めていきます。
ありがとうございます。
No.2
- 回答日時:
NO.1です。
>3行目以下がエラーになりませんがグラフに反映されません。
1~2行目をもう一度繰り返してはいかがでしょうか?
具体的には、『1~2行目をコピーして、binsが記述されている行の上に貼り付ける』です。
あまり美しくありませんが、暫定対応ということで。
googoo900さん
回答ありがとうございます。
下記のように実施しましたが、少数点しか反映されませんでした。
Binsのコードに間違いがあるのでしょうか?
ActiveSheet.ChartObjects("?O???t 2").Activate
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.NumberFormatLocal = "0.0_ "
ActiveSheet.ChartObjects("?O???t 2").Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.ChartGroups(1).BinsType = xlBinsTypeBinCount
ActiveChart.ChartGroups(1).BinsCountValue = 11
ActiveSheet.ChartObjects("?O???t 2").Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.ChartGroups(1).BinsOverflowEnabled = True
ActiveChart.ChartGroups(1).BinsOverflowValue = 2
ActiveSheet.ChartObjects("?O???t 2").Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.ChartGroups(1).BinsUnderflowEnabled = True
ActiveChart.ChartGroups(1).BinsUnderflowValue = 0
No.1
- 回答日時:
質問文のマクロに対して、以下のようにしてみてください。
2行目を修正 ActiveChart.Axes(xlCategory).Select
3行目に追加 Selection.TickLabels.NumberFormatLocal = "0.0_ "
googoo900さん
ご教示ありがとうございます。
Selection.TickLabels.NumberFormatLocal = "0.0_ " を追加したら、表示形式の小数点以下桁数を
1桁にできました。
しかし3行目以下がエラーになりませんがグラフに反映されません。
コードに問題点があるのでしょうか?
記載コード
ActiveSheet.ChartObjects("グラフ 2").Activate
ActiveSheet.Axes(xlCategory).Select
Selection.TickLabels.NumberFormatLocal = "0.0_ "
ActiveChart.ChartGroups(1).BinsType = xlBinsTypeBinCount
ActiveChart.ChartGroups(1).BinsCountValue = 11
ActiveChart.ChartGroups(1).BinsOverflowEnabled = True
ActiveChart.ChartGroups(1).BinsOverflowValue = 2
ActiveChart.ChartGroups(1).BinsUnderflowEnabled = True
ActiveChart.ChartGroups(1).BinsUnderflowValue = 0
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのグラフ作成で軸を等...
-
EXCELでグラフを作るとき、縦軸...
-
エクセルの円を5等分する方法
-
エクセルの縦軸(Y軸)が不均等...
-
Excel:別シートにグラフを貼り...
-
エクセルで折れ線と散布図を同...
-
エクセル 0や空白のセルをグラ...
-
エクセルで折れ線グラフ(散布...
-
レーダーチャートの目盛を逆に...
-
Excelでx軸とy軸を設定して図を...
-
エラーバーの終端の線を長くする
-
エクセル グラフの”データーテ...
-
エクセルの対数グラフのエラー
-
EXCELのグラフ作成時に元データ...
-
ワードの差し込みにて、値をグ...
-
ExcelのグラフをPowerPointに貼...
-
エクセルで作ったグラフの右側...
-
VBA 散布図の点の元セルを取得...
-
2019エクセル折れ線グラフで、Y...
-
Jww_Cadにエクセルで作ったグラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのグラフ作成で軸を等...
-
EXCELでグラフを作るとき、縦軸...
-
Excel:別シートにグラフを貼り...
-
エクセルの縦軸(Y軸)が不均等...
-
Excelでx軸とy軸を設定して図を...
-
エクセルで折れ線と散布図を同...
-
エクセルで折れ線グラフ(散布...
-
エクセル 0や空白のセルをグラ...
-
エクセルで、極座表のグラフ描...
-
エクセル グラフはあるけれど...
-
エクセル グラフの”データーテ...
-
エクセルの円を5等分する方法
-
散布図を縦に2個並べて出力したい
-
エクセルの対数グラフのエラー
-
<EXCELグラフ>データ取得範囲...
-
ExcelのグラフをPowerPointに貼...
-
エクセルグラフの項目名を折り...
-
EXCELのグラフ作成時に元データ...
-
ワードの差し込みにて、値をグ...
-
エクセルのグラフの1点の色を変...
おすすめ情報
画像がわかりにくいので、補足いたします。
ヒストグラムのX軸の書式設定
軸オプション
・ビンの数 11
・ビンのオーバーフロー 2.0
・ビンのアンダーフロー 0
表示形式
・数値
・小数点以下の桁数 1
上記をマクロ記録しことをVBAで実行したのですが、エラーしませんがグラフに反映されません。
またX軸の表示形式がマクロ記録されません。
googoo900さん
昨日今VBAを使用する環境(Oiffce2016)にて試し、
下記のコードにてヒストグラムを仕様通り作成することができました。
ご教示本当ありがとうございました。
ActiveSheet.ChartObjects("グラフ2").Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlCategory).TickLabels.NumberFormatLocal = "0.0"