• ベストアンサー

エクセルのグラフで横軸を最新の30個で自動更新

HohoPapaさん 何度もしつこくて、くどくてすみませんがあと1つだけお願いします。 うまく動くBookに品種別Bookのデータをコピペして、必要な細工を再構築して一応目的のBookが完成しましたが、先ほどの質問のお礼欄にコメントしましたようにX軸が数字の場合への対応がどうしても必要です。あるいはX軸の指定を抜く。 試しにX軸に関係しそうなコード(Column0)を1行づつ削除してみましたが駄目でした。 X軸は何も何もなくても良いのでこの部分だけ改良何とかお願いいたします。 グラフ化は何とか完成させたいのであと一息何卒よろしくお願いします。 先程の質問は締め切らせてもらいます。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

>X軸は何も何もなくても良いのでこの部分だけ改良何とかお願いいたします。 過日も触れましたが、 >>期待のグラフを右クリックし、 >>データの選択を選び、 >> 表示される設定画面、凡例項目に余分な行があれば削除し >>横(項目)軸ラベルは、編集を選び >>明示的に範囲を指定したうえで、 添付のコードを実行してみてください。 今回提示したコードは X軸の内容:横(項目)軸ラベルの定義に触れないコードです。 期待通り動作すれば、 データに使う行数やデータに使う列が変化しても constの値を書き換えることで対応するハズです。 少なくとも当方の環境では期待通り動作します。 Sub GraphSauceChange7()  Const MaxRows = 30  'データ範囲に指定する最大行数  Const ColNum1 = 5  '1つ目データ格納列  Const ColNum2 = 10  '2つ目データ格納列  Const SRowNum = 17  'データ開始行番号  Const KoumokuRow = 16 '項目名格納行番号  Const ShNameGD = "データ" 'データ格納シート名  Const ShNameGr = "グラフ" 'グラフ描写シート名    Dim GSh As Worksheet  Dim DSh As Worksheet  Dim SRow As Long   'グラフ用データ開始行  Dim ERow As Long   'グラフ用データ終了行  Dim tgRange1 As Range 'データ群1つ目範囲  Dim tgRange2 As Range 'データ群2つ目範囲  Dim tgRangeA As Range '上記合計範囲    Set GSh = ThisWorkbook.Sheets(ShNameGr)  Set DSh = ThisWorkbook.Sheets(ShNameGD)    ERow = DSh.Cells(DSh.Rows.Count, 1).End(xlUp).Row  If ERow < MaxRows + SRowNum Then   SRow = SRowNum  Else   SRow = ERow - MaxRows + 1  End If    MsgBox (SRow & "-" & ERow) 'デバック用確認コード    Set tgRange1 = _   Range(DSh.Cells(SRow, ColNum1), DSh.Cells(ERow, ColNum1))  Set tgRange2 = _    Range(DSh.Cells(SRow, ColNum2), DSh.Cells(ERow, ColNum2))  Set tgRangeA = Union(tgRange1, tgRange2)    '結合     GSh.ChartObjects(1).Chart.SetSourceData Source:=tgRangeA  'セット     GSh.ChartObjects(1).Chart.SeriesCollection(1).Name = _   DSh.Cells(KoumokuRow, ColNum1).Value  GSh.ChartObjects(1).Chart.SeriesCollection(2).Name = _   DSh.Cells(KoumokuRow, ColNum2).Value End Sub

akira0723
質問者

お礼

今回も7個もコードを作成していただき申し訳なさと感謝の極みです。 今後必要なBookから順次改定し、末永く使わせていただきます。 今回でひな形がほぼ完成したと自負します。(ほとんどHohoPapaさんの仕事ですが) これからたまってしまった日常業務に気分よく取り掛かかれます。 Thank you again !!!!

akira0723
質問者

補足

昨夜自宅でダミーシートで完璧に動くことを確認し、今朝からひな形Bookでも期待通り動くことを確認しました。 ただし、製品別のBookではやはり同じエラーが発生するのですが、昨日の試行でデータ部分のコピペで解決できることが分かっているので十分です。(むしろ構成のおかしなBookを使い続けるより同じ環境のBookにしておくメリットもあります) 後はコツコツと知恵の無い分、汗を流すことにします。 本当にありがとうございました。 追記 軸に数値(LOT No)を指定した場合はマニュアルでX軸を消しても、マクロを動かすと第3の要素(線)とX軸も再表示(復活)してしまいます。 ただし、LOT Noの列の1か所に文字が入っているとLOT Noも文字として認識して期待通りに表示されることがわかりました。 ただし、よく考えたらこの場合1個目の特性データをどうするか(1個目の実測値と同じ値を入れるとか)を考えないとだめなのでやはり#7がいいです。

その他の回答 (1)

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

質問内容の意味が詳細不明ですが、X軸が数字の場合への対応はX軸を数字にすれば自動的にグラフにX軸の数字が表示されるはずです。X軸が年月日になっているようでしたら、X軸の元データのセルの書式を年月日ではなく数字(標準)に変更してみて下さい。

akira0723
質問者

お礼

早々のご回答ありがとうございます。 実はこれはその前の質問へのその時のご回答者様への再質問で詳細な内容が抜けています。 これまでに長いやり取りがあったので省略してしまいました。 #2で解決できました。 説明不足で申し訳ありませんでした。

関連するQ&A