[[20120124181138]] 『箱ひげグラフをマクロ化したら負の誤差が表示され』(ヒデじい) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『箱ひげグラフをマクロ化したら負の誤差が表示されない』(ヒデじい)
積み上げ棒グラフから箱ひげグラフを描かせています。
これをマクロ化し、EXCEL2002では何の問題も無く自動で描くことができていました。
これを、EXCEL2007で同様な作業を実行させると、実行エラー’004’となり、
負の誤差をグラフ化する時点以降、マクロを実行してくれません。
正の誤差はうまくグラフ表示をしています。
勿論、正ならびに負の誤差は、EXCELのセル番号で指定しています。
EXCEL2002と2007の間で、負のセル番号の指定方法が変わったのでしょうか?
  xlPlusValues, Type:=xlCustom,Amount:="=Sheeet1!R13C3:R13C6"
負の誤差表示:
ActiveChart.SeriesCollection(1).ErrorBar Direction:=xlY,Include:= _
  xlMinusValues, Type:=xlCustom,MinusValues:="=Sheeet1!R14C3:R14C6"

なお、EXCELマクロを作成する為のこうした詳細の解説マニアルは、何を参考にすればいいのでしょうか。

使用機器ならびにソフト:EXCEL2002はWindowsXPで、EXCEL2007はWindowsVistaです。

以上 宜しくお願いいたします。 

       


 こんにちは

 > EXCEL2002と2007の間で、負のセル番号の指定方法が変わったのでしょうか? 

 ご参考までに
 Excel2007で適当なグラフを作成して試してみたところ

 try()、try2()は通りましたが、try3()は通りませんでした。

 Sub try()
     ActiveChart.SeriesCollection(1).ErrorBar _
         Direction:=xlY, Include:=xlErrorBarIncludeMinusValues, _
         Type:=xlErrorBarTypeCustom, amount:=0, minusvalues:="=Sheet1!$C$14:$F$14"
 End Sub

 Sub try2()
     ActiveChart.SeriesCollection(1).ErrorBar _
         Direction:=xlY, Include:=xlErrorBarIncludeMinusValues, _
         Type:=xlErrorBarTypeCustom, amount:=0, minusvalues:="=Sheet1!R14C3:R14C6"
 End Sub

 Sub try3()
     ActiveChart.SeriesCollection(1).ErrorBar _
         Direction:=xlY, Include:=xlErrorBarIncludeMinusValues, _
         Type:=xlErrorBarTypeCustom, minusvalues:="=Sheet1!R14C3:R14C6"
 End Sub

 > なお、EXCELマクロを作成する為のこうした詳細の解説マニアルは、何を参考にすればいいのでしょうか。 
 私の場合は、やっぱり、一番はヘルプです。

 はずしていたら、ゴメンなさい。

 (穂高)


 こんにちは

 amount:=0
 は
 Amount:="={0}"
 が佳いのかも(判って(理解して)はいません。)

 ググってみたら
 同じ質問がありました。

http://www.office-forums.com/vba-errorbar-method-does-not-allow-custom-minusvalues-t2009349.html
http://www.mrexcel.com/forum/showthread.php?t=348824

 2つめのリンクで
 Jon Peltier 氏がコメントなさっているように
 VBAの互換性は100%ではないようです。

 > Re: Error bar macro does not work with Excel2007 
 > 
 > --------------------------------------------------------------------------------
 > 
 > 2007 uses existing VBA code successfully 99.5% of the time. This is part of the other 0.5%.
 > 
 > What you have to do is explicitly enter a zero for the unused direction.
 > 
 > 
 > Code:
 > ActiveChart.SeriesCollection(1).ErrorBar Direction:=xlY, Include:=xlPlusValues, _
 >     Type:=xlCustom, Amount:="=Sheet1!y_error_1", MinusValues:="0" 
 > 
 > ActiveChart.SeriesCollection(1).ErrorBar Direction:=xlY, Include:=xlMinusValues, _
 >     Type:=xlCustom, Amount:="0", MinusValues:="=Sheet1!y_error_2"__________________
 > - Jon
 > -------
 > Jon Peltier, Peltier Technical Services, Inc.
 > http://PeltierTech.com/WordPress/ 

 (穂高)


(穂高さま)
 早速、ご丁寧に検討していただき、ありがとうございました。
 お教えのとおり、amount:=0を挿入すれば、負のerrorbarを
 書いてくれるようになりました。
 厚く御礼を申し上げます。
 ただし、「箱」部分の線が描かれなくなりました。
 2002では
  With Selection.Border
   .Weight=xlThin
   .LineStyle=xlAutomatic
  End With
 で良かったのですが...
 お教えいただけないでしょうか。


 こんにちは

 >With Selection
 (何をselectしているのか該当部分がないけれども
  「箱」部分の線とあるので、Seriesであるとして)

 .LineStyle = xlContinuousなどとすると
 描画されるようです。

 ヘルプで
 XlLineStyle 列挙を見てみると

 XlLineStyle 列挙 
 輪郭の線の種類を指定します。
 名前 値 説明 
 xlContinuous 1 実線 
 xlDash -4115 破線 
 xlDashDot 4 一点鎖線 
 xlDashDotDot 5 ニ点鎖線 
 xlDot -4118 点線 
 xlDouble -4119 2 本線 
 xlLineStyleNone -4142 線なし 
 xlSlantDashDot 13 斜破線 

 Excel2007の規定の積み上げ縦棒では
 DefaultでSeriesに枠線はないし
 実際に、手動で設定ダイアログを開いて
 枠線の色を自動にすると枠線のスタイルで幅を選択できません。
 [そもそも、Excel2007では枠線のスタイルに『自動』の選択肢は見当たらないです。]

 解決しない場合には
 (部分部分でなく、差し支えのない範囲内で)
 グラフ描画の全Codeを提示されますと
 コメントがつきやすいかも知れません。

 There's More Than One Way To Do It.

 頻繁に、同じ書式のグラフを作成するのであるのならば
 場合によっては
 グラフをコピーしてデータ範囲を書き換える
 テンプレートにしてスタイルを適用する
 なども選択肢の一つかと思われます。

 (穂高)


穂高さま

度々のご教授、有難うございました。
口足らずでご迷惑をおかけしました。お察しのとおり箱部分の実線の
ことでした。
ご指摘のとおり、.LineStyle = xlContinuous とすると、実線を描いてくれました。
有難うございました。
ーー
それにしても、Excel2007になって、便利になったとの宣伝でしたが、
リボンにある数々の機能が、マクロ記録では記録されず、このことは
どこにも説明されていません。
あるいは、VistaやExcelのレベルによってサービスに違いがあるのでしょうか?
2002,2003の時代には、このようなことはなかったのですが…
愚痴をお聞かせしてしまいましたが、今後ともよろしくご指導ください。


 こんにちは

 ご参考として
 田中さんのHPのアドレスを貼ります。
http://officetanaka.net/excel/vba/graph/index.htm
http://officetanaka.net/excel/excel2010/013.htm

 ※Excel2003以前のグラフとExcel2007以降のグラフは別物だと認識しています。

 (穂高)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.