- ベストアンサー
エクセル2007 折れ線グラフの作成
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
進んでいますか? 数値から直線を描画するサンプルマクロを組んでみました。 グラフ用データ セル範囲 C22:L22 に、140以下の数値を入力しておいてください。 Sub test1() Dim vrng As Range, grng As Range Dim l As Single, t As Single Dim w As Single, h As Single Dim x1 As Single, y1 As Single Dim x2 As Single, y2 As Single Dim pmax As Single Dim i As Integer pmax = 140 'Y軸最大値 Set vrng = Range("C22:L22") 'データセル範囲 Set grng = Range("C5:L18") 'プロットエリア l = grng.Left t = grng.Top w = grng(1).Width h = grng.Height For i = 2 To vrng.Count x1 = l - w / 2 + w * (i - 1) x2 = l - w / 2 + w * (i) y1 = t + h - h * vrng(i - 1).Value / pmax y2 = t + h - h * vrng(i).Value / pmax ActiveSheet.Shapes.AddLine x1, y1, x2, y2 Next i Set vrng = Nothing: Set grng = Nothing End Sub
その他の回答 (3)
- xls88
- ベストアンサー率56% (669/1189)
残念ながら、添付画像の画質が悪く、どのようなスタイルのグラフなのか詳細が掴めません。 ≫マクロでやるなら コードが解らなければ「マクロの記録」を利用してください。 お分かりだとは思いますが、セル範囲をプロットエリアに見立てるわけですから 項目数 = セル列範囲のWidthプロパティ値 最大値 = セル行範囲のHeightプロパティ値 ということで、データ値と最大値の比から シート上のプロット位置の、X座標、Y座標を算出 といった事をしなければなりません。
- xls88
- ベストアンサー率56% (669/1189)
Excel既存のグラフ機能を使わないで、ということなら、マクロで、オートシェイプの直線を描画することになるかと思います。 >既存のグラフ機能だと土台がこちらの意図する表現の物がないので。 どのような機能が不足しているとお考えですか? 工夫すれば、既存のグラフ機能でも実現できるかも知れません。
補足
>Excel既存のグラフ機能を使わないで、ということなら、マクロで、オートシェイプの直線を描画することになるかと思います。 その方法を教えていただきたくての、質問です。 >どのような機能が不足しているとお考えですか? 工夫すれば、既存のグラフ機能でも実現できるかも知れません。 表現するグラフの基盤は画像のとおりできていますので「折れ線のみ」を表と関連づけして自動描写できるようにしたいのが希望です。
- xls88
- ベストアンサー率56% (669/1189)
良く分からないのですが、Excel既存のグラフ機能を使わないで、ってことでしょうか?
補足
そうなると思います。グラフを表現する土台(シート)は自分で書き、その上に折れ線グラフを表現したいので、既存のグラフ機能だと土台がこちらの意図する表現の物がないので。
お礼
すみません。勉強不足のため、マクロ等調べているのですが、全くはかどっていません。教えて頂いた設定方法もよく理解できていないのが現状です。もっともっと具体的な質問を新たに投稿します。もしよろしければ一度のぞいていただけたら幸いです。