advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 3686 for グラフ (0.002 sec.)
[[20150820212633]]
#score: 3272
@digest: 712e46364f802464c30b9c8cd5541b6a
@id: 68735
@mdate: 2015-08-24T10:59:30Z
@size: 10502
@type: text/plain
#keywords: フ20 (87290), xllabelpositionabove (81198), datalabel (62262), hasdatalabels (59266), points (49734), hasdatalabel (43732), フ30 (35279), の陣 (33166), datalabels (31451), 夏の (30637), 陣) (26885), seriescollection (26139), textframe2 (23767), textrange (21991), フ名 (19282), フ2 (19241), position (17553), applydatalabels (16854), chartobjects (13886), test7 (11250), activechart (10873), ラフ (8008), グラ (7196), chart (5808), (夏 (5309), マナ (4999), size (4909), 2015 (2918), font (2794), format (2280), ナさ (2241), like (2193)
グラフの最右の値だけ表示』(夏の陣)
折れ線グラフの最新(最右)のデータラベルの値だけを、表示するマクロを作成しま したが、Points(19)の部分が変動するようにしないと、最新の値は表示しないように 思うのですが、如何でしょうか? 他にも 表示位置や、フォントも変更するようにしています。 ご指導よろしくお願いします。 Sub test() ActiveSheet.ChartObjects("グラフ 20").Activate ActiveChart.SeriesCollection(1).DataLabels.Delete ActiveChart.SeriesCollection(1).Points(19).ApplyDataLabels ActiveChart.SeriesCollection(1).Points(19).DataLabel.Position = xlLabelPositionAbove ActiveChart.SeriesCollection(1).DataLabels.Format.TextFrame2.TextRange.Font.Size = 14 End sub < 使用 Excel:Excel2007、使用 OS:Windows7 > ---- こうでしょうか Sub test2() With ActiveSheet.ChartObjects("グラフ 20").Chart.SeriesCollection(1) If .HasDataLabels Then .DataLabels.Delete With .Points(.Points.Count) .HasDataLabel = True .DataLabel.Position = xlLabelPositionAbove .DataLabel.Format.TextFrame2.TextRange.Font.Size = 14 End With End With End Sub (マナ) 2015/08/20(木) 22:56 ---- マナさんありがとうございます。 回答いただいたコードを試してみました。 マクロはエラーも無く終了しますが、グラフは何も 変わりませんでした。なぜでしょうか? (夏の陣) 2015/08/21(金) 06:19 ---- これでどうでしょうか Sub test3() With ActiveSheet.ChartObjects("グラフ 20").Chart.SeriesCollection(1) .HasDataLabels = False With .Points(.Points.Count) DoEvents .HasDataLabel = True DoEvents .DataLabel.Position = xlLabelPositionAbove .DataLabel.Format.TextFrame2.TextRange.Font.Size = 14 End With End With End Sub (マナ) 2015/08/21(金) 20:12 修正21:14 ---- マナさんありがとうございます。 再度やってみました。 一旦、各ポイントの値だけの表示がされ、そして削除されて、 その後、最新のデータも何も現れません。 (夏の陣) 2015/08/21(金) 22:20 ---- では、これではどうでしょうか Sub Test4() With ActiveSheet.ChartObjects("グラフ 20").Chart.SeriesCollection(1) .HasDataLabels = False With .Points(.Points.Count) .HasDataLabel = True Application.Wait Now + TimeValue("0:00:01") .DataLabel.Position = xlLabelPositionAbove .DataLabel.Format.TextFrame2.TextRange.Font.Size = 14 End With End With End Sub (マナ) 2015/08/21(金) 22:51 ---- マナさん結果同じでした。 もう一度よく考えてみます。 ありがとうございました。 (夏の陣) 2015/08/21(金) 23:33 ---- 最近、似た事例がありまして これで、表示されるなら同じ現象かも。 Sub test5() With ActiveSheet.ChartObjects("グラフ 20").Chart.SeriesCollection(1) .HasDataLabels = False With .Points(.Points.Count) .HasDataLabel = True .Select .DataLabel.Position = xlLabelPositionAbove .DataLabel.Format.TextFrame2.TextRange.Font.Size = 14 End With End With End Sub (マナ) 2015/08/22(土) 10:04 ---- これなら、できるかも Sub test6() With ActiveSheet.ChartObjects("グラフ 20").Chart.SeriesCollection(1) .HasDataLabels = False With .Points(.Points.Count) .HasDataLabel = True .DataLabel.Position = xlLabelPositionAbove .DataLabel.Font.Size = 14 End With End With End Sub (マナ) 2015/08/22(土) 10:21 ---- マナさん、色々と考えていただき、ありがとうございます。 test4もtest5も、何も表示されませんでした。 (夏の陣) 2015/08/22(土) 19:07 ---- こちらでは、表示されるですが、困りました こうするしかないかも。 Sub test7() Dim n As Long ActiveSheet.ChartObjects("グラフ 20").Activate n = ActiveChart.SeriesCollection(1).Points.Count ActiveChart.SeriesCollection(1).DataLabels.Delete ActiveChart.SeriesCollection(1).Points(n).ApplyDataLabels ActiveChart.SeriesCollection(1).Points(n).DataLabel.Position = xlLabelPositionAbove ActiveChart.SeriesCollection(1).DataLabels.Format.TextFrame2.TextRange.Font.Size = 14 End Sub (マナ) 2015/08/22(土) 19:24 ---- test7がOKであることが前提ですが、 思いつくところを、やみくもに。 Sub test8() Dim n As Long With ActiveSheet.ChartObjects("グラフ 20").Chart.SeriesCollection(1) n = .Points.Count .HasDataLabels = False .Points(n).ApplyDataLabels .Points(n).DataLabel.Position = xlLabelPositionAbove .DataLabels.Format.TextFrame2.TextRange.Font.Size = 14 End With End Sub Sub test9() With ActiveSheet.ChartObjects("グラフ 20").Chart.SeriesCollection(1) .HasDataLabels = False With .Points(.Points.Count) .HasDataLabel = True .DataLabel.Position = xlLabelPositionAbove End With .DataLabels.Format.TextFrame2.TextRange.Font.Size = 14 End With End Sub Sub test10() With ActiveSheet.ChartObjects("グラフ 20").Chart.SeriesCollection(1) .HasDataLabels = False With .Points(.Points.Count) .ApplyDataLabels .DataLabel.Position = xlLabelPositionAbove End With .DataLabels.Format.TextFrame2.TextRange.Font.Size = 14 End With End Sub (マナ) 2015/08/22(土) 20:00 ---- マナさん、付き合っていただき、ありがとうございます。 test8.9.10同じ現象でした。 気になるのが二つあります。 ?@test7の変数nが、こちらでマクロを動かすとn=31になっています。 nはグラフのポイントだと思いますが。 ?Aマクロスタート以前のグラフの状態は、最新のデータが表示されており、 アクティブにはなっていません。 マナさんの設定とこのへんが食い違っているでしょうか? (夏の陣) 2015/08/23(日) 08:02 ---- グラフはアクティブにしておく必要ありません。 1)test7でも、表示されなかったということですか 2)nはポイント数です。31個ではないということですか 3)対象のグラフ名は、グラフ 20で間違いありませんか 4)ステップ実行を試していただけますか (マナ) 2015/08/23(日) 09:37 ---- マナさん、ありがとうございます。 1)test7でも、表示されなかったということですか 表示されませんでした。 2)nはポイント数です。31個ではないということですか nはどのようにして抽出してるんでしょうか? 横軸に日付けがあり、今日は22日だから、ポイント22に ならないといけないのではないでしょうか? 3)対象のグラフ名は、グラフ 20で間違いありませんか 20で間違いありませんでした。 4)ステップ実行を試していただけますか ステップ実行とは、どういう意味ですか? 勉強不足でわかりません。 ご教示お願いします。 (夏の陣) 2015/08/23(日) 12:43 ---- 今度こそ、わかったかも。 グラフのデータ範囲は1ヶ月用に設定してあって、 日々データを入力していくと、グラフが伸びていくのですね。 Sub test11() Dim i As Long With ActiveSheet.ChartObjects("グラフ 20").Chart.SeriesCollection(1) .HasDataLabels = False For i = .Points.Count To 1 Step -1 If Not IsEmpty(.Values()(i)) Then With .Points(i) .HasDataLabel = True .DataLabel.Position = xlLabelPositionAbove .DataLabel.Font.Size = 14 End With Exit For End If Next End With End Sub (マナ) 2015/08/23(日) 14:17 ---- マナさん、ありがとうございます。 きちんとと思いどりおりに表示されました。 最初の説明が足らなかったです。すみませんでした。 申し訳ありませんが、もう一問お付き合いください。 提示したグラフ名は20のみですが、グラフが一つの シートにグラフ名が20から30まで続きであります。 回答頂いたものを列記したら良いかもしれませんが ループしたら良いと思うのですが、要領を得ません。 よろしく、おねがいします。 (夏の陣) 2015/08/23(日) 17:01 ---- すべてのグラフ対象ということなら、グラフ名の確認は不要になります。 対象とするかどうかを名前で判断するなら、名前の付け方を工夫すればよいと思います。 他には、グラフのタイプやセル位置で判断することでもよいです。 Sub test12() Dim co As ChartObject Dim i As Long For Each co In ActiveSheet.ChartObjects If co.Name Like "グラフ 2[0-9]" Or co.Name Like "グラフ 30" Then With co.Chart.SeriesCollection(1) .HasDataLabels = False For i = .Points.Count To 1 Step -1 If Not IsEmpty(.Values()(i)) Then With .Points(i) .HasDataLabel = True .DataLabel.Position = xlLabelPositionAbove .DataLabel.Font.Size = 14 End With Exit For End If Next End With End If Next End Sub (マナ) 2015/08/23(日) 19:29 ---- マナさん、すべてのグラフ対象ということなら、グラフ名の確認は不要 ということですが、 回答いただいた、If co.Name Like "グラフ 2[0-9]" Or co.Name Like "グラフ 30" Then の部分、特にグラフ 2[0-9]がわかりません。 どこまでもお手数ですが教えてください。 (ジョン) 2015/08/23(日) 22:56 ---- すべてのグラフが対象であれば、 If co.Name Like 〜が必要なくなるという意味です。 削除してもらって結構です。 以下は、マクロを実行したくないグラフも同じシートにある場合の話です。 その場合は、グラフ名が○○ならば実行とか、××でないならば実行 とするなど、対象のグラフかどうか判断させる必要があるので その例が >If co.Name Like "グラフ 2[0-9]" Or co.Name Like "グラフ 30" Then です。 と書いていて気付きました。2個めのLikeは=でよかったです。 If co.Name Like "グラフ 2[0-9]" Or co.Name = "グラフ 30" Then で、質問のグラフ 2[0-9]ですが、 [0-9]は、0〜9の数字1文字という意味です。 なので、グラフ 20〜29になります。 グラフ 2# でもよいです。 ただ、グラフ ○とか、エクセルが勝手につけた名前をそのまま使わずに、 私ならば判断しやすい名前に変更します。 対象とするグラフの名前をすべて、例えば「夏の陣」としてみてください。 その場合のコードは、 If co.Name = "夏の陣" Then とすればよいので、簡単です。 (マナ) 2015/08/24(月) 19:31 ---- マナさん、If co.Name Like "グラフ 2[0-9]" Or co.Name Like "グラフ 30" Thenの意味 よくわかりました。 仕事柄グラフをよく使うので、これから先、活用させていただきます。 最後まで、お付き合いいただき、ありがとうございました。 (夏の陣) 2015/08/24(月) 19:59 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201508/20150820212633.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97013 documents and 608132 words.

訪問者:カウンタValid HTML 4.01 Transitional