[[20120119124357]] 『マクロについて教えてください』(まくまくろ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロについて教えてください』(まくまくろ)

マクロを使って、

「列を挿入」

「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.