質問: 330 end with range("a3").select end sub (参考:http://oshiete.nikkeibp.co.jp/qa780484.html) 質問2 質問1で修正したグラフを3列、行数は任意でワークシート上に綺麗に並べたい のですが、どのようなコードでしょうか。?(グラフとグラフの間は5ポイント位 隙間を入れたいと思います。グラフ数は20~40位、excel2000)
回答: #2の追伸です。 今、試してみたけれども、以下のように、凡例だけ消してあげるだけでも、よさそうな気がします。 解説をつけておきましたので、必要に応じて、ブロックアウト(「'(アポストロフィ)をつける」)してください。なお、プロットサイズとグラフエリアは、同じにならない、ということを前提としています。 sub testgrapharrangement() 'グラフエリアとプロットエリアの差を近づける dim grph as chartobject on error resume next for each grph in activesheet.chartobjects with grph.chart '.axes(xlvalue).delete '数値軸 '.axes(xlcategory).delete '項目軸 .legend.delete '凡例 .chartarea.border.linestyle = 0 'グラフエリアの外周線を消す .chartarea.interior.colorindex = xlnone 'グラフエリアを透明にする end with next end sub #2の訂正です。 >その横並びの一番大きな高さのものを対象にして を忠実に表してはいませんでした。横並びの一番高い高さを確保しても、3列終わったら、一度、0にしてあげないといけませんでした。 dim startpos as range set startpos = range("d2") '最初のグラフのトップの位置 sngtop = startpos.top sngleft = startpos.left for each grph in activesheet.chartobjects i = i + 1 with grph .top = sngtop .top = sngtop .left = sngleft + sngwidth + 5 '横は、5ポイント sngwidth = sngwidth + .chart.chartarea.width if .chart.chartarea.height > sngheight then sngheight = .chart.chartarea.height end if if i mod 3 = 0 then sngtop = sngtop + sngheight + 5 '縦の間は、5ポイント sngheight = 0 '加入 sngwidth = 0 end if end with next end sub