エクセルの1シート内にある複数の散布図のx軸とy軸の最大目盛、最少目盛、目盛間隔を揃えるにはどのようにしたら良いか教えてください。いくつかwebsiteで調べて下記のようにしてみましたが、x軸の目盛を変更するところで、失敗してしまいます。
よろしくお願いします。
Sub XY軸()
Dim Ymin
Ymin = InputBox("Y軸の最少?")
If IsNumeric(Ymin) Then
Range("C2").Value = Ymin
Else
MsgBox "入力NG!"
End If
Dim Ymax
Ymax = InputBox("Y軸の最大?")
If IsNumeric(Ymax) Then
Range("C3").Value = Ymax
Else
MsgBox "入力NG!"
End If
Dim Y
Y = InputBox("目盛間隔?")
If IsNumeric(Y) Then
Range("C4").Value = Y
Else
MsgBox "入力NG!"
End If
Dim xmin
xmin = InputBox("X軸の最少?")
If IsNumeric(xmin) Then
Range("D2").Value = xmin
Else
MsgBox "入力NG!"
End If
Dim Xmax
Xmax = InputBox("X軸の最大?")
If IsNumeric(Xmax) Then
Range("D3").Value = Xmax
Else
MsgBox "入力NG!"
End If
Dim X
X = InputBox("Xの目盛間隔?")
If IsNumeric(X) Then
Range("D4").Value = X
Else
MsgBox "入力NG!"
End If
Dim co As ChartObject
For Each co In ActiveSheet.ChartObjects
With co.Chart
With .Axes(xlValue)
.MinimumScale = Range("C2").Value '最小値
.MaximumScale = Range("C3").Value '最大値
.MajorUnit = Range("C4") '目盛間隔
End With
With .Axes(xlCategory)
.MinimumScale = Range("D2").Value '最小値
.MaximumScale = Range("D3").Value '最大値
.MajorUnit = Range("D4") '目盛間隔
End With
End With
Next
End Sub
No.2ベストアンサー
- 回答日時:
失礼します。
>現在シートにグラフが18個ありますが、別に折れ線グラフも2つあります。
ChartTypeプロパティで散布図化どうか判定し、If文で分岐処理すればどうでしょうか。
co.Chart.ChartType
xls88様
お礼が遅くなりました。アドバイスを参考に下記のように修正してうまくいきました。
ありがとうございました。
If co.Chart.ChartType = xlXYScatter Then
With .Axes(xlValue)
.MinimumScale = Range("C2").Value '最小値
.MaximumScale = Range("C3").Value '最大値
.MajorUnit = Range("C4") '目盛間隔
End With
End If
No.1
- 回答日時:
ぱっと見たところマクロ自体には問題は無さそうなので,実際に入れたデータが悪いのではありませんか。
たとえば「X軸を対数目盛にしている」のに,「最小値としてゼロやマイナスを入れようとした」とか,目盛り間隔の値の選定を間違えているとか。
マクロ以前に手動で,軸の書式設定の目盛タブで,入れようとした数字を実際に入れてみて正しく入る数字かどうか確認してみてください。
また具体的に「どのデータに幾つの数字を入れた」時に,「どこの行で」どんなトラブルが起きたのか,正しく情報提供してみてください。
keithin様
早速のアドバイスありがとうございます。
x軸は対数などにはしておりません。また、手動では問題ありませんでした。
以下、もう少し補足と確認したことを書かせていただきます。
エラーの表示として、
「.MaximumScale メソッドは失敗しました ’Axisオブジェクト」
デバッグでは、以下がエラーとされてしまいます。
.MinimumScale = Range("D2").Value '最小値
C2=0,C3=5,C4=1
D2=0,D3=60,D4=20と入れています。
現在シートにグラフが18個ありますが、別に折れ線グラフも2つあります。
これが問題な気もします。y軸だけであれば、上のものでうまく一括変換できました。
今回、例えば折れ線グラフを2個だけ選択した状態にして、シート中の選択されていないグラフ(散布図)のみを対象に一括変換できたりしますでしょうか?
もちろん、選択したグラフ(散布図18個)だけを対象にするのが良いのでしょうが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) ExcelVBA No.を自動連番で設定をしながらデータ入力をしたい 2 2022/08/03 18:19
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) C3とC4のセルに、Visual basicで実行した時入力した値をC3に表示させ、その後に、C3に 1 2023/07/14 09:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの散布図のX軸に文字...
-
グラフの横・縦項目が全部表示...
-
エクセルの対数グラフで細かい...
-
エクセルの散布図グラフで、横...
-
エクセルグラフ メモリを方眼...
-
エクセル グラフの削除してし...
-
エクセル2010 グラフの軸の最...
-
Excelで横軸の目盛を対数で表示...
-
第2軸を追加すると折れ線グラフ...
-
EXCELでX軸が時間のグラフを作...
-
エクセル2007:折れ線グラフを...
-
エクセルでグラフを作成する際...
-
エクセル、パワーポイントで作...
-
Excel のグラフの目盛表示をπ、...
-
エクセルでグラフ
-
Excel グラフ 原点修正について
-
Excelで0を基点にして、目盛を...
-
Excelのグラフの縦軸の目盛の値...
-
《エクセル2000》一箇所だけ、...
-
エクセル365 グラフの2軸目が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの散布図のX軸に文字...
-
グラフの横・縦項目が全部表示...
-
エクセル2010 グラフの軸の最...
-
エクセル グラフの削除してし...
-
エクセルの対数グラフで細かい...
-
エクセルでグラフを作成する際...
-
エクセルの散布図グラフで、横...
-
エクセル 主軸と第2軸を入れ...
-
第2軸を追加すると折れ線グラフ...
-
EXCELでX軸が時間のグラフを作...
-
エクセル2007:折れ線グラフを...
-
Excelのグラフで同じ数値軸を左...
-
Excelグラフで数値軸の最小数値...
-
エクセル365 グラフの2軸目が...
-
《エクセル2000》一箇所だけ、...
-
エクセルグラフ メモリを方眼...
-
4万件程度の散布図を作成したい...
-
エクセル、パワーポイントで作...
-
excelのグラフ、軸の数値を等間...
-
Excelで0を基点にして、目盛を...
おすすめ情報