現在、エクセルで、選択したグラフの大きさや縦横軸を統一するマクロを作成中です。
以下のようなマクロまでは作ることができましたが、ひとつだけ不満があります。
それは、初期値です。
できれば、最初に選択したグラフの設定を初期としてダイアログの入力欄に記入してある状態にしたいのですが、どうすればよいかわかりません。
知恵を貸してください!!
よろしくお願いいたします!!!
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
論文に載せるグラフを作成したい
-
Excel VBAでグラフをクリックし...
-
Scilabのグラフの凡例
-
沢山のフォルダにあるファイル...
-
マイドキュメントのフォルダの...
-
iso形式のファイルがフォルダに...
-
PCファイルの完全な削除方法
-
データ移動時にポップアップメ...
-
USBデータの消失
-
onedriveで同期解除をしたら、...
-
windows7でbootsectが使えない
-
CPコマンドでファイルがコピー...
-
エクセルでファイルの最終更新...
-
チェックボックスのデータをdat...
-
hamachiにログイン出来ません
-
isoイメージファイルの復元方法
-
HTML5からAndroid APKを作成する
-
ISOファイルが削除できません。
-
非圧縮のZIPファイルを作りたい...
-
や…やらかしてしまいました:助...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA グラフの存在の判定について
-
Excel VBAでグラフをクリックし...
-
【VBA】Excel等高線グラフの...
-
グラフを「似ている」順に並べ...
-
Excel VBAで、グラフを特定のセ...
-
論文に載せるグラフを作成したい
-
Excel VBA グラフ ChartType に...
-
Matlabによる複素数・・・
-
c言語 正負の値それぞれでの最...
-
グラフの元のデータを消しても...
-
グラフの色を数値で変わるように!
-
MFCプログラミング
-
matlabのy軸を2つ利用したグラ...
-
Excel VBAでグラフ作成。A,C列...
-
C#のChartで目盛線をグラフの前...
-
Excelのグラフをshapeオブ...
-
エクセルのマクロ
-
Excelマクロでグラフの縦軸目盛...
-
excelのグラフをLaTexに挿入す...
-
C言語でグラフ作成
おすすめ情報