前提・実現したいこと
アンケートの集計結果をExcelを用いてを棒グラフの資料として作成したいと思っています。しかし、アンケートの質問項目が全部で20問以上あり、一つ一つのグラフを作成し、一つ一つの書式設定を行っていると大変な労力になると思い、vbaを生かしながら、一括で処理できればと思っています。
書式設定に関しては検索しながら、なんとか問題の解決に至りました。一方で、データ選択について解決策が見えない問題が生じてしまいました。具体的には、「項目軸ラベル」と「グラフデータ」が離れたセル上にある場合、それぞれを分けて記載すればいいと思うのですが、For~Next文で繰り返し処理を実行してしまうと、連続したデータとして勝手に複数のデータを読み取ってしまいます。
こちらの意図としては、
・グラフ1・・・ 項目軸ラベル:WorkSheets("データ").Range("C29:F29") グラフデータ:WorkSheets("データ").Range("C30:F30")
・グラフ2・・・ 項目軸ラベル:WorkSheets("データ").Range("C29:F29") グラフデータ:WorkSheets("データ").Range("C31:F31")
・グラフ3・・・項目軸ラベル:WorkSheets("データ").Range("C29:F29") グラフデータ:WorkSheets("データ").Range("C32:F32")
・・・
のように、各グラフに対し、4本の棒グラフだけが生じるようにしたいのですが、下記のコードで実行すると、グラフ1は4本、グラフ2は8本(取得したグラフデータが「C30:F31」になってしまうため)、グラフ3は12本(取得したグラフデータが「C30:F32」になってしまうため)と意図していない結果になってしまいます。どうすれば、解決できますでしょうか。
発生している問題・エラーメッセージ
エラーメッセージは特にありません。実行はされます。
該当のソースコード
Excel VBA
For i = 1 To 20
With ActiveSheet.ChartObjects(i).Chart
.SetSourceData Source:=Range(Worksheets("データ").Range("C29:F29"), Worksheets("データ").Range("C" & i + 30 & ":F" & i + 30))
End With
Next
試したこと
試したことは上記のとおりです。
補足情報(FW/ツールのバージョンなど)
特にありません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/06 14:13