- ベストアンサー
エクセル VBA 数値のみの個別抽出方法
- エクセルのグラフ参照範囲の文字列から、数字のみを抽出する方法を教えて下さい。
- 条件の判定回数が要素数を上回った場合のエラーを回避するために、要素数の数だけ判定し、エラーにならずに系列を順次繰り上げたいです。
- 参照範囲の取得のために使用しているコードは、Chartオブジェクトを使用して各系列のFormulaを取得するものです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
WEB記事に https://oshiete.goo.ne.jp/qa/9263013.htmlがある。 一部修正したが。 Sub test02() Dim i As Long Dim s As String Dim rng As Range: Set rng = ActiveSheet.Range("A30") Dim objChart As Chart Set objChart = ActiveSheet.ChartObjects(1).Chart With objChart.SeriesCollection For i = 1 To .Count MsgBox "系列" & i & "のソースデータ範囲は ⇒" _ & vbCrLf & .Item(i).Formula s = .Item(i).Formula s = Replace(s, "=SERIES(,", "") 's = Right(s, Len(s) - 1) ' 左端の=を削除 s = Left(s, Len(s) - 3) rng.Value = s Set rng = rng.Offset(1, 0) Next i End With Set objChart = Nothing End Sub ーー この結果は Sheet1!$A$1:$C$1,Sheet1!$A$2:$C$2 Sheet1!$A$1:$C$1,Sheet1!$A$3:$C$3 Sheet1!$A$1:$C$1,Sheet1!$A$4:$C$4 だが、 あと何が出したいのか? ーー 参考に 私の例ではデータが、A1:C4で a b c 10 25 40 30 15 60 50 45 80 のグラフを描いたものを対象にすると A30以下に Sheet1!$A$1:$C$1,Sheet1!$A$2:$C$2 Sheet1!$A$1:$C$1,Sheet1!$A$3:$C$3 Sheet1!$A$1:$C$1,Sheet1!$A$4:$C$4 とでる。
お礼
Replace関数によって不要な文字を取り除けるのですね。 とても参考になる回答を下さり、ありがとうございました。