[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロについて教えてください』(まくまくろ)
マクロを使って、
「列を挿入」
「sheet00の9行をコピーして、sheet01の9行に挿入」
「sheet00のB、C、D列をコピーして、sheet01のB、C、D列に貼り付け」
といった内容の作業手順をマクロに登録してみました。
この作業手順を記録して、それを実行するところまでは成功しました。
で、できれば、その同じマクロ(作業手順)を他のシートでも
実行したいのですが、うまくできません。
sheet01で作ったマクロを、sheet02、sheet03....などで
実行することは可能なのでしょうか?
その場合、どのような作業手順が必要ですか?
(ビジュアルベーシックで「任意のシート」とかを入れるとか?)
わかる方がいらっしゃいましたら、よろしくお願いいたします。
そのコードを載せられますか? (Miki)
下記です。
よろしくお願いいたします。
Sub test_macro()
'
' test_macro Macro
' マクロ記録日 : 2012/1/19 ユーザー名 : H4
'
'
Columns("D:F").Select Selection.Insert Shift:=xlToRight ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 Columns("I:I").Select Selection.Insert Shift:=xlToRight Rows("1:2").Select Range("C1").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select Rows("1:3").Select Selection.Copy Sheets("BOX1").Select Rows("1:1").Select Range("C1").Activate ActiveSheet.Paste Sheets("入力sample").Select Rows("9:9").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select Rows("9:9").Select Range("C9").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select Rows("20:20").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select Rows("20:20").Select Range("C20").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select Rows("31:31").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select Rows("31:31").Select Range("C31").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select Rows("42:42").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select Rows("42:42").Select Range("C42").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select ActiveWindow.SmallScroll Down:=9 Rows("53:53").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select Rows("53:53").Select Range("C53").Activate Selection.Insert Shift:=xlDown ActiveWindow.SmallScroll Down:=21 Sheets("入力sample").Select ActiveWindow.SmallScroll Down:=12 Rows("64:64").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select ActiveWindow.SmallScroll Down:=3 Rows("64:64").Select Range("C64").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select ActiveWindow.SmallScroll Down:=9 Rows("75:75").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select Rows("75:75").Select Range("C75").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select ActiveWindow.SmallScroll Down:=9 Rows("86:86").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select ActiveWindow.SmallScroll Down:=12 Rows("86:86").Select Range("C86").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select ActiveWindow.SmallScroll Down:=9 Rows("97:97").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select ActiveWindow.SmallScroll Down:=12 Rows("97:97").Select Range("C97").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select ActiveWindow.SmallScroll Down:=18 Rows("108:108").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select ActiveWindow.SmallScroll Down:=15 Rows("108:108").Select Range("C108").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select ActiveWindow.SmallScroll Down:=12 Rows("119:119").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select ActiveWindow.SmallScroll Down:=12 Rows("119:119").Select Range("C119").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select ActiveWindow.SmallScroll Down:=9 Rows("130:130").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select ActiveWindow.SmallScroll Down:=9 Rows("130:130").Select Range("C130").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select Rows("141:141").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select ActiveWindow.SmallScroll Down:=12 Rows("141:141").Select Range("C141").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select ActiveWindow.SmallScroll Down:=12 Rows("152:152").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select ActiveWindow.SmallScroll Down:=12 Rows("152:152").Select Range("C152").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select ActiveWindow.SmallScroll Down:=15 Rows("163:163").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select Rows("163:163").Select Range("C163").Activate Selection.Insert Shift:=xlDown Sheets("入力sample").Select ActiveWindow.SmallScroll Down:=-153 Columns("D:F").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select Columns("D:D").Select Range("D109").Activate ActiveSheet.Paste ActiveWindow.SmallScroll Down:=-48 ActiveWindow.ScrollRow = 60 ActiveWindow.ScrollRow = 58 ActiveWindow.ScrollRow = 54 ActiveWindow.ScrollRow = 50 ActiveWindow.ScrollRow = 44 ActiveWindow.ScrollRow = 39 ActiveWindow.ScrollRow = 33 ActiveWindow.ScrollRow = 27 ActiveWindow.ScrollRow = 25 ActiveWindow.ScrollRow = 22 ActiveWindow.ScrollRow = 16 ActiveWindow.ScrollRow = 14 ActiveWindow.ScrollRow = 12 ActiveWindow.ScrollRow = 8 ActiveWindow.ScrollRow = 5 ActiveWindow.ScrollRow = 1 Sheets("入力sample").Select Columns("I:I").Select Application.CutCopyMode = False Selection.Copy Sheets("BOX1").Select Columns("I:I").Select ActiveSheet.Paste Range("H4:H8").Select With Selection.Interior .ColorIndex = 56 .Pattern = xlSolid End With End Sub
(まくまくろ)
BOX1のところは、選択しているシートにしたいのですが、
入力sampleのところは、いろんなシートにこのシートの書式をコピーするので、
このままでも問題ないと思います。
よろしくお願いいたします。
無駄な部分を削除して繰り返し部分を処理しました。 基本的に同じ動きをすると思います。
Sub test_macro2()
Dim i As Integer Dim Sh As String
Sh = ActiveSheet.Name
With Sheets(Sh)
.Columns("D:F").Insert Shift:=xlToRight .Columns("I:I").Insert Shift:=xlToRight .Rows("1:2").Insert Shift:=xlDown
Sheets("入力sample").Rows("1:3").Copy .Rows(1)
For i = 9 To 163 Step 11 .Rows(i).Insert Shift:=xlDown Sheets("入力sample").Rows(i).Copy .Rows(i) Next i
Sheets("入力sample").Columns("D:F").Copy .Columns("D") Sheets("入力sample").Columns("I:I").Copy .Columns("I") .Range("H4:H8").Interior.ColorIndex = 56
End With
End Sub
(Miki)
早速のご返答ありがとうございます。
申し訳ないのですが、このコードをどうやってどこに記録したらいいのか
教えていただけますか?
よろしくおねがいいたします。
「Sub test_macro2()」から「End Sub」の間部分をコピーして、 エクセルの「ツール」-「マクロ」-「マクロ」から「test_macro」をえらんで 「編集」ボタンをクリック。(Alt+F11でも可) 「Microsoft Visual Basic」と標題に書かれた画面(VBE)が立ち上がります。 そこにはまくまくろさんが記録したコードが載っていると思いますので、その下の 空白部分にでもペーストしてください。 マクロの実行は「test_macro2」を選べばOKです!
(Miki)
ありがとうございます!!!!
そこで、更にお願いしてしまって申し訳ないのですが・・・・。
これを、作業グループを選択して、選択されたシートに一気に反映することは可能でしょうか?
もし、可能でしたら、本当に大変に助かります!!
選択したシート(複数シートOK)に対して処理します。
Sub test_macro3()
Dim i As Integer Dim Sh
For Each Sh In ActiveWindow.SelectedSheets With Sheets(Sh.Name) .Columns("D:F").Insert .Columns("I:I").Insert .Rows("1:2").Insert Sheets("入力sample").Rows("1:3").Copy .Rows(1) For i = 9 To 163 Step 11 .Rows(i).Insert Sheets("入力sample").Rows(i).Copy .Rows(i) Next i Sheets("入力sample").Columns("D:F").Copy .Columns("D") Sheets("入力sample").Columns("I:I").Copy .Columns("I") .Range("H4:H8").Interior.ColorIndex = 56 End With Next
End Sub
(Miki)
ありがとうございます〜〜〜〜〜〜〜T^T
ちょっと複雑なので、コピペするところを間違えたりして、
1からやり直しなんてことが何度もありまして。。。
でも、これでもう、そんなことにも悩まされなくなり、
作業効率が格段にupしました!!
本当に、ありがとうございました!!!
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.