#Iです。
#1は中途でプッツン的だったので、エクセルで印刷するところまでやってみました。
エクセルのシートの中でやっているので、Wordに差し込み印刷してませんが参考になれば。
人によればエクセルだけでやるのでは。
ワード文書の文言もエクセルシートに作れる場合もあろう。
データ
Sheet1
組 氏名 英語 数学 国語 理科 社会 音楽
B-1 吉田 重雄 20 30 50 90 15 35
B-2 岸野 はるか 30 35 40 100 30 20
B-3 町村 公男 40 20 35 120 40 30
ーーー
コード(丁寧にコメントを入れているつもり)
標準モジュールに
'エクセルシートのデータをもとに、VBAでグラフを作成するのに必要なものは、
'1. ヘッダ
'2. データセット
' の2つ。
' 新規作成したchartオブジェクトに、上記2つを渡せばグラフを作成できる。
'
'各データセットの装飾(色や塗り)は、chartオブジェクトから取得したSeriesオブジェクトを操作することで可能。
Sub rdchartmk2()
'---シート指定
Set Sh1 = Worksheets("Sheet1") 'データのあるシート
Set sh2 = Worksheets("Sheet2") 'グラフを描くシート
Set sh3 = Worksheets("Sheet3") '文言あり、印刷するシート
'グラフを作成
'第1行目にある表データのヘッダを Range オブジェクトとして設定
Set headerRange = Sh1.Range("C1:H1") 'C,D,E,F,G,Hの6軸となる
'--データ最終行行番号
Sh1.Select
lr = Sh1.Range("A1000").End(xlUp).Row
MsgBox lr
'---
For i = 2 To 4 ' lr
'第2行目以下行にある表データセットを Range オブジェクトとして設定
Set DataRange = Sh1.Range("C" & i & ":H" & i)
'chartオブジェクトに渡すため、ヘッダRangeとデータセットRangeを結合する
Set gRange = Union(headerRange, DataRange)
'---何回もテストする場合の抹消用
sh2.DrawingObjects.Delete
sh3.DrawingObjects.Delete
'chartオブジェクトを作成する。Sheet2に作成
'--シート上の位置の数値指定
L = 100: T = 150: W = 400: H = 400
Set rChart = sh2.ChartObjects.Add(L, T, W, H) 'Sheet3シートにグラフ作成
rChart.Chart.SetSourceData gRange 'Chart.が必要
'グラフの種類を指定する
rChart.Chart.ChartType = xlRadar 'レーダーチャート指定
'---
'凡例を表示するかどうか
rChart.Chart.HasLegend = False '一人ずつのグラフの場合は不要 出す場合はTrue
'値の目盛りラベルを表示しない
rChart.Chart.Axes(xlValue).TickLabelPosition = xlTickLabelPositionLow
'---
'レーダーチャートグラフで、データセットの設定を変更
'※ 指定したいデータセットは
'rChart.Chart.SeriesCollection(x)で取得できる
'塗りつぶしの色を変更する
'rChart.Chart.SeriesCollection(X).Format.Fill.ForeColor.RGB = RGB(r, g, b)
rChart.Chart.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(1000, 1000, 5000) 'Color = vbGreen
'塗りつぶしを無し(透明)にする
rChart.Chart.SeriesCollection(1).Format.Fill.Visible = msoTrue
'線の細さを変更する
rChart.Chart.SeriesCollection(1).Format.Line.Weight = 10
'線の色を変更する
'rChart.Chart.SeriesCollection(X).Format.Line.Color = RGB(10000, 20000, 10000)
'線にマーカーを表示する
'rChart.Chart.SeriesCollection(X).ChartType = xlRaderMarkers
'順番を変更する(凡例の順番も準じる)。xxxxの値が小さいほど上になる。
'rChart.Chart.SeriesCollection(X).PlotOrder = xxxx
'------Sheet3シートに文言セット クラス・氏名と不動文言
sh3.Range("A1") = "精華中学校"
sh3.Range("B1") = Sh1.Range("A" & i)
sh3.Range("B3") = Sh1.Range("B" & i) & " 殿"
sh3.Range("B4") = "今期の成績のグラフは下記の通りです。"
sh3.Range("B7") = "弱かった科目を勉強し、大きな丸いグラフを目指しましょう。"
Set chartObj = sh2.ChartObjects(1)
Set Chart1 = chartObj.Chart
Chart1.ChartArea.Copy
sh3.Select
sh3.Range("A10").Select 'グラフの上辺の貼り付け位置を決める
ActiveSheet.Paste
'Set nwSheet = Sheets.Add(After:=ActiveSheet)
'Sheets("Sheet4").Select
'nwSheet.Paste
'--Sheet3を印刷
ActiveSheet.Range("A1:H40").PrintOut
Next i
End Sub
結果
エクセル2013でやりました。
3人分3枚のシートが出てきました。
Sheet1に例データを入力し、Sheet2、SAへえt3を用意して実行してみてください。
1枚に文言と、本人のレーダーチャートが印刷されます。
教師が期末に生徒に対し渡すメモと図というイメージでやりました。(この点の説明がないのが、質問表現として手抜きだと思う。
ーーー
WEBに乗っているいろいろな例は(1)誤りがある場合がある(2)VBAとして常識的な事項や設定などは説明していない場合がある。(3)必要な前提知識や背景知識が必要だか省かれている。市販の本などには載っていない(4)テストするためのデータを作るにもそれなりの知識がいる。
>マクロも使い始めたばかりで
質問者がその状況では、他アプリ(エクセルからWordなど)にまたがった処理をVBAでしようとするのは無謀でしょう。
上記の私小生のコードもWEBにある例を使いましたが、改変するのが大変でした。特にグラフ関係はObjectとがシートなどに比べて複雑で、ワード(VBA)についてもそれが言えると思う。WEBを調べても、必要関連知識は膨大で、小生も学習期間は長いのですが、難渋しています。
ーー
本件は、質問に書かれているケースの記述が不完全で、まともに回答がつけられないのかもしれない。
いまだに回答がないようですね。