現在、エクセルで、選択したグラフの大きさや縦横軸を統一するマクロを作成中です。
以下のようなマクロまでは作ることができましたが、ひとつだけ不満があります。
それは、初期値です。
できれば、最初に選択したグラフの設定を初期としてダイアログの入力欄に記入してある状態にしたいのですが、どうすればよいかわかりません。
知恵を貸してください!!
よろしくお願いいたします!!!
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ランキング
-
C言語によるハノイの塔のプログ...
-
c言語 正負の値それぞれでの最...
-
Excel VBAで、グラフを特定のセ...
-
積み上げ棒グラフの項目名を細...
-
Excel VBAでグラフをクリックし...
-
Webでのグラフ表示を行うには、...
-
Excel VBAでのグラフ
-
レガシーASPでのグラフ作成...
-
excelのグラフをLaTexに挿入す...
-
excelで散布図に線を追加したい
-
グラフを「似ている」順に並べ...
-
onedriveで同期解除をしたら、...
-
共有しているファイルを削除し...
-
teratarmでコマンド入力すると...
-
読み取り専用ファイルを上書き...
-
YAHAMA RTXシリーズのコマンド...
-
TXTファイルを上書き保存する前...
-
沢山のフォルダにあるファイル...
-
vlan internal allocation poli...
-
パワーポイントのデータを誤っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA グラフの存在の判定について
-
論文に載せるグラフを作成したい
-
【VBA】Excel等高線グラフの...
-
グラフの元のデータを消しても...
-
excelのグラフをLaTexに挿入す...
-
Excel VBAでグラフをクリックし...
-
グラフを「似ている」順に並べ...
-
Excel VBAで、グラフを特定のセ...
-
MFCプログラミング
-
Excel VBA グラフ ChartType に...
-
c言語 正負の値それぞれでの最...
-
グラフの色を数値で変わるように!
-
C#のChartで目盛線をグラフの前...
-
excelで散布図に線を追加したい
-
Excel VBAでグラフ作成。A,C列...
-
matlabのy軸を2つ利用したグラ...
-
Google Chart APIでランキング表示
-
gnuplotで関数を途切れさせるに...
-
C言語によるハノイの塔のプログ...
-
Scilabのグラフの凡例
おすすめ情報