[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロでグラフを移動&サイズ変更したい』(ちろりん)
教えて下さい。 下記の表をマクロの記録を使い3つのグラフにします。 @A1:F2 AA1:F1,A3:F3 BA1:F1,A4:F4
[A] [B] [C] [D] [E] [F] [1] No1 No2 No3 No4 No5 [2] あああ 5 10 15 20 25 [3] いいい 3 6 9 10 12 [4] ううう 2 4 6 8 10
マクロの記録をしていらないコードを削除していくと下記の様になりました。(3つのグラフのうちの1つです) Sub Macro1() Range("A1:F1,A3:F3").Select Range("A3").Activate Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:F1,A3:F3"), _ PlotBy:=xlRows ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" With ActiveChart .ChartTitle.Characters.Text = "あああ" End With ActiveChart.Axes(xlValue).Select With ActiveChart.Axes(xlValue) .MaximumScale = 100 .ScaleType = xlLinear .DisplayUnit = xlNone End With End Sub
マクロを起動した時に、この3つのグラフの基点を好きな場所(sheet1のA100とsheet1のA130とsheet1のA160)に 貼り付けたい場合はどうすればいいのですか? ヨロシクお願いします。
こんな感じで。 With ActiveChart .ChartTitle.Characters.Text = "あああ" .Parent.Top = Sheets("Sheet1").Range("A100").Top .Parent.Left = Sheets("Sheet1").Range("A100").Left End With BJ
BJさん ありがとうございます。 指定した位置に貼る事は出来ました。 ただ、質問し忘れてた事がひとつ。。。 サイズも指定したかったのです。 っで、BJさんのコードにこんな感じかなぁ?なんて追記してみましたが・・・ With ActiveChart .ChartTitle.Characters.Text = "あああ" .Parent.Top = Sheets("Sheet1").Range("A100").Top .Parent.Left = Sheets("Sheet1").Range("A100").Left .Parent.Bottom = Sheets("Sheet1").Range("A130").Bottom .Parent.Right = Sheets("Sheet1").Range("J130").Right End With やっぱりエラーが・・・(T_T) .Parent.Bottom = Sheets("Sheet1").Range("A130").Bottom ここでエラーがでてしまいます。 したい事は、高さと幅を好きなサイズに指定したいのですが、 どうすればいいのでしょうか? ヨロシクお願いします。 (ちろりん)
With ActiveChart .HasTitle = True '← 前回の設定を引き継ぐの解らないけど、これも必要? .ChartTitle.Characters.Text = "あああ" .Parent.Top = Sheets("Sheet1").Range("A15").Top .Parent.Left = Sheets("Sheet1").Range("A15").Left '.Parent.Height = Sheets("Sheet1").Range("A15").Height '.Parent.Width = Sheets("Sheet1").Range("A15").Width .Parent.Height = Sheets("Sheet1").Range("A15").MergeArea.Height .Parent.Width = Sheets("Sheet1").Range("A15").MergeArea.Width End With BJ
BJさん ありがとうございます。 早速実行してみましたが、思う様に出来ませんでした。 @上のコードをそのまま貼り付けてみると、『A15』1マスのちっこ〜ぃグラフが出来ました(笑) A高さと幅を変更したい為、下記の様にRangeの部分を .Parent.Height = Sheets("Sheet1").Range("A25").MergeArea.Height .Parent.Width = Sheets("Sheet1").Range("K25").MergeArea.Width とかにしてみましたが、上記と同じ様に、『A15』1マスのちっこ〜ぃグラフが出来ました(T_T) どこを変更すればいいんでしょうか?
ちなみに、コメント扱いしている '.Parent.Height = Sheets("Sheet1").Range("A15").Height '.Parent.Width = Sheets("Sheet1").Range("A15").Width は、何か意味がありましたでしょうか? (ちろりん)
え〜と、気づいて直して使ってくれると思ったんですけど。 A15は、こちらで一応テストした時のセルアドレスです。
.Parent.Top = Sheets("Sheet1").Range("A15").Top これだと、A15に張り付いているから、 前回、 A100に張り付いている .Parent.Top = Sheets("Sheet1").Range("A100").Top
との違いも解ってくれると思ったので、 ここに掲載後にきづいた間違いを修正しませんでした。 貼り付けたいセルアドレスに変えてくれれば良いです。
>ちなみに、コメント扱いしている これは、もしかしたらセルを結合しているかもしれないと思って、 単一セル結合セルのどちらにも対応できるようにMergeAreaにしました。 でも、単一セルの場合は、コメントしてある方のがいいかな? と、思って残しただけです。好きな方を使ってください。
因みにこの部分は無くても動きますよ。 Range("A1:F1,A3:F3").Select Range("A3").Activate BJ
BJさん いつもありがとうございます。 説明の仕方が悪く、こちらの意図が伝わりきってなかった様です。m(_ _)m セルアドレスが『A100』から『A15』に変わってるのは気づいてましたが、 グラフの貼り付け位置を指定したかったのです。 今は、セルA15の1マスに貼りついてますが、これをA15:K20の様に横長のグラフに したかったのです。 [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [14] ______ [15]|______|←今はこの1マスに貼りついてます。 [16]
それを・・・ [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [14] ________________________________________________________________ [15]| | [16]| こういう感じの大きさのグラフにしたいのです。 | [17]| | [18]| | [19]| | [20]|________________________________________________________________|
説明ベタで申し訳ありませんでした。 ヨロシクお願いします。 (ちろりん)
BJさん お疲れ様です。 上記のスレをたててから色々考えてみました。 何回も読み返しながら・・・そしたら解決しました。 貼り付けたいサイズに結合しておけば上手くできました。 ありがとうございました。 (ちろりん)
With ActiveChart .HasTitle = True '← 前回の設定を引き継ぐの解らないけど、これも必要? .ChartTitle.Characters.Text = "あああ" .Parent.Top = Sheets("Sheet1").Range("A15").Top .Parent.Left = Sheets("Sheet1").Range("A15").Left ↓ここを修正 A15:K20の範囲なら .Parent.Height = Sheets("Sheet1").Range("A15:K20").Height .Parent.Width = Sheets("Sheet1").Range("A15:K20").Width
'.Parent.Height = Sheets("Sheet1").Range("A15").MergeArea.Height '.Parent.Width = Sheets("Sheet1").Range("A15").MergeArea.Width End With BJ
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.