dポイントプレゼントキャンペーン実施中!

excel2013で、シートのレイアウトを整えるマクロを以下のように作成しました。
しかし、いざ他のシートで試すと、そのシートと同時に特定のシートにもなぜかマクロが実行されてしまいます。(恐らく作ったときに使っていたシート)
どうしたら今見ているシートだけにマクロを実行することができるでしょうか?

ActiveWindow.Zoom = 85
ActiveWindow.Zoom = 70
Columns("A:A").ColumnWidth = 10.13
Columns("A:A").ColumnWidth = 10.63
Columns("B:B").ColumnWidth = 6.63
Columns("D:D").ColumnWidth = 20
Columns("D:D").ColumnWidth = 23.75
Columns("D:D").ColumnWidth = 24.63
Columns("E:E").ColumnWidth = 10.38
Range("E1").Select
ActiveCell.FormulaR1C1 = "インボイス金額"
ActiveCell.Characters(7, 2).PhoneticCharacters = "キンガク"
Columns("F:F").Select
Selection.Delete Shift:=xlToLeft
Columns("G:G").Select
Selection.Delete Shift:=xlToLeft
Range("H9").Select
Columns("G:G").ColumnWidth = 11.38
Columns("I:K").Select
Selection.Delete Shift:=xlToLeft
Range("J9").Select
Columns("I:I").ColumnWidth = 15
Columns("J:J").ColumnWidth = 9.75
Columns("K:K").ColumnWidth = 9.5
Range("L2").Select
Columns("L:L").ColumnWidth = 5.5
Columns("O:O").Select
Selection.Delete Shift:=xlToLeft
Selection.ColumnWidth = 13.88
Columns("P:P").Select
Selection.Delete Shift:=xlToLeft
Selection.ColumnWidth = 12.13
Selection.ColumnWidth = 13.25
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
Columns("Q:Q").Select
Selection.ColumnWidth = 5.5
Columns("S:S").Select
Selection.ColumnWidth = 6.75
Columns("T:T").ColumnWidth = 9.75
Columns("Q:T").Select
Range("T1").Activate
Selection.Style = "Comma [0]"
Columns("U:U").Select
Columns("V:V").ColumnWidth = 5.5
Columns("V:V").ColumnWidth = 6
Columns("W:Z").Select
Selection.Delete Shift:=xlToLeft
Columns("X:Z").Select
Selection.Delete Shift:=xlToLeft
Range("X10").Select
Columns("X:X").ColumnWidth = 12.25
Columns("X:X").ColumnWidth = 11.13
Columns("Y:Y").ColumnWidth = 6.75
Columns("Z:Z").ColumnWidth = 11.63
Columns("AA:AA").ColumnWidth = 6.75
Columns("AB:AB").Select
Selection.Delete Shift:=xlToLeft
Range("AB2").Select
Columns("AB:AB").ColumnWidth = 11
Columns("AD:AO").Select
Selection.Delete Shift:=xlToLeft
Range("AF14").Select
Columns("AD:AD").ColumnWidth = 11
Columns("AE:AE").Select
Selection.Delete Shift:=xlToLeft
Range("AG7").Select
Columns("AE:AE").ColumnWidth = 20.38
Columns("AF:AJ").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 1
Rows("2:2").Select
ActiveWindow.FreezePanes = True
Range("A2").Select
ActiveWorkbook.Worksheets("11").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("11").Sort.SortFields.Add Key:=Range("D2:D137"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("11").Sort.SortFields.Add Key:=Range("A2:A137"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("11").Sort
.SetRange Range("A1:AE137")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With
End Sub

よろしくお願い致します。

A 回答 (2件)

こんばんは。



まず、VBAやマクロの基本的なことから学習せずに、いきなり記録マクロを試そうとして、うまくいかないと思います。あえていうなら、「そのシート」を、Select していないということですね。

Workbook("マイブック").Activate
Worksheets("11").Select

のようにして、記録マクロを貼り付ければ、まともに動くかもしれませんね。

>(恐らく作ったときに使っていたシート)
もしかして、他のブックからの呼び出し?

もう少し洗練されたコードのほうがよいのですが、「個人用マクロブック」に入れたほうが、呼び出しなら楽かな?本格的には、もっと違うマクロになるけれども、基礎的な知識がない場合は、それぐらいしか手立てがありませんね。あくまでも、「標準モジュール」に入れます。

#1の方の
>これは「故意に指定している」のですよね?
それも、そうですね。ということは、違うシートで作業して、ActiveWorkbook.Worksheets("11")に移ったのかな?
    • good
    • 0
この回答へのお礼

こんばんは、お礼が遅くなり、大変申し訳ありません。
ご丁寧にお教えくださってありがとうございました!参考にさせていただくと同時にVBAの基礎から勉強して再度挑みたいと思います。
ありがとうございました!

お礼日時:2014/05/09 08:03

後半で



ActiveWorkbook.Worksheets("11").

って感じで「11」と言う名前のシートに対してマクロを実行しているけど、これは「故意に指定している」のですよね?
    • good
    • 0
この回答へのお礼

こんにちは、お世話になります。
ご回答ありがとうございました。
その11という名前のシートでマクロを作成したのですが・・・私がマクロの基礎からわかっておらず・・・よって故意ではないのです。
ありがとうございました!

お礼日時:2014/05/09 08:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!