|
たびたびすみません;;
前回データラベルの取得方法について質問させていただいた超初心者です。
(環境はExcel2000です。)
コード表記についてまたまた質問させてください。
アクティブなシートの、特定のグラフの全てのデータラベルの値を取得し、
ラインフィードで分割して値を取得する下記のコードを書いています。
Sub 作成中()
Dim co As ChartObject
Dim pp As Point
Dim DT As Variant
Dim bunrui As String 'ラベルの値を格納
Dim suuchi As String 'パーセントの値を格納
Set co = ActiveSheet.ChartObjects("グラフ 8") '任意のグラフを指定
co.Activate
For Each pp In co.Chart.SeriesCollection(1).Points
DT = Split(pp.DataLabel.Caption, vbLf) '改行でラベルの文字列を分割
bunrui = DT(0)
suuchi = DT(1)
Range("A265").Select '抽出した文字列を表示するセルの場所を指定
If bunrui <> "" Then
Do
ActiveCell.FormulaR1C1 = bunrui
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = suuchi
ActiveCell.Offset(-1, 1).Select
Loop Until bunrui <> ""
End If
Next
End Sub
やりたいこととしては、取得した値を
(例)
A B C
1 4月 5月 6月
2 10% 15% 5%
…のように、全てを表示させたいのです。
上記コードでは「ActiveCell.Offset(-1, 1).Select」で右上のセルに移動し、
If〜ThenとDo〜Loop処理で取得した値を順順に表示させようと思いましたが、
何か勘違いをしているのか、うまくいきません(>_<)。
上記のコードですと、最後のデータラベルの値のみ、
A1、A2に表示して最後にB1にセルを選択。。。で処理が終わってしまいます。
例えば、(例)でラベル「6月」が最後のデータラベルだとすると、A1に「6月」、A2に「5%」と表示され処理が終了します。
なんだか当たり前のことを間違えているような気がして大変お恥ずかしい限りですが、
なにとぞご教授お願いいたします。
何か説明不足の場合はご指摘願います。
|
|