[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロでグラフを移動&サイズ変更したい』(ちろりん)
教えて下さい。 下記の表をマクロの記録を使い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.