![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
現在、エクセルで、選択したグラフの大きさや縦横軸を統一するマクロを作成中です。
以下のようなマクロまでは作ることができましたが、ひとつだけ不満があります。
それは、初期値です。
できれば、最初に選択したグラフの設定を初期としてダイアログの入力欄に記入してある状態にしたいのですが、どうすればよいかわかりません。
知恵を貸してください!!
よろしくお願いいたします!!!
Sub 選択したグラフ縦横軸変更()
Dim chartObj As ChartObject
Dim myObj As Object
Dim xmin As Double
Dim xmax As Double
Dim ymin As Double
Dim ymax As Double
xmin = Application.InputBox("x軸最小値")
xmax = Application.InputBox("x軸最大値")
ymin = Application.InputBox("y軸最小値")
ymax = Application.InputBox("y軸最大値")
For Each myObj In Selection
Set chartObj = ActiveSheet.ChartObjects(myObj.Name)
With chartObj.Chart.Axes(xlCategory)
.MaximumScale = xmax
.MinimumScale = xmin
End With
With chartObj.Chart.Axes(xlValue)
.MaximumScale = ymax
.MinimumScale = ymin
End With
Next myObj
End Sub
No.1ベストアンサー
- 回答日時:
Sub try()
Dim objs As Object
Dim obj As Object
Dim flg As Boolean
Dim xmin As Double
Dim xmax As Double
Dim ymin As Double
Dim ymax As Double
If TypeName(Selection) <> "DrawingObjects" Then
MsgBox "failure"
Exit Sub
End If
Set objs = Selection
For Each obj In objs
If TypeName(obj) = "ChartObject" Then
flg = True
With obj.Chart
With .Axes(xlCategory)
xmin = .MinimumScale
xmax = .MaximumScale
End With
With .Axes(xlValue)
ymin = .MinimumScale
ymax = .MaximumScale
End With
End With
Exit For
End If
Next
If flg Then
xmin = Application.InputBox("x軸最小値", , xmin)
xmax = Application.InputBox("x軸最大値", , xmax)
ymin = Application.InputBox("y軸最小値", , ymin)
ymax = Application.InputBox("y軸最大値", , ymax)
For Each obj In objs
If TypeName(obj) = "ChartObject" Then
With obj.Chart
With .Axes(xlCategory)
.MinimumScale = xmin
.MaximumScale = xmax
End With
With .Axes(xlValue)
.MinimumScale = ymin
.MaximumScale = ymax
End With
End With
End If
Next
End If
Set objs = Nothing
End Sub
こんな感じです。
2003以前と2007でちょっと挙動が違って、
2003では上記try実行した後、Selctionのまま再実行すると
最初に選択したChartがわからなくなるようです。
単独で実行する分には問題ないでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/07 08:37
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでグラフをクリックし...
-
グラフを「似ている」順に並べ...
-
論文に載せるグラフを作成したい
-
【VBA】Excel等高線グラフの...
-
Excel VBAでのグラフ
-
vb.net(vs2008)でのグラフ作成...
-
excelで散布図に線を追加したい
-
EXCELマクロで順番にグラフをつ...
-
MATLABのプログラミング
-
C# PictureBox + panelでのスク...
-
グラフの元のデータを消しても...
-
Matlabによる複素数・・・
-
VBA グラフの存在の判定について
-
HP上にあるグラフの再現
-
excelのグラフをLaTexに挿入す...
-
Excelのグラフ「2軸上の折れ線...
-
onedriveで同期解除をしたら、...
-
vlan internal allocation poli...
-
teratarmでコマンド入力すると...
-
共有しているファイルを削除し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
論文に載せるグラフを作成したい
-
Excel VBAでグラフをクリックし...
-
excelのグラフをLaTexに挿入す...
-
VBA グラフの存在の判定について
-
C言語によるハノイの塔のプログ...
-
Excel VBAでのグラフ
-
【VBA】Excel等高線グラフの...
-
excelで散布図に線を追加したい
-
C#のChartで目盛線をグラフの前...
-
レガシーASPでのグラフ作成...
-
Excel VBAで、グラフを特定のセ...
-
グラフの元のデータを消しても...
-
OWCによるグラフ描写について
-
Matlabによる複素数・・・
-
c言語 正負の値それぞれでの最...
-
Webでのグラフ表示を行うには、...
-
グラフを「似ている」順に並べ...
-
gnuplotで関数を途切れさせるに...
-
C言語でグラフ作成
-
グラフの色を数値で変わるように!
おすすめ情報