[[20150721100713]] 『マクロによるシート作成』(ポンタ) ページの最後に飛ぶ

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

 

『マクロによるシート作成』(ポンタ)

シートに一定の項目を入力し、それを元にひな形シートをコピーして作成代入するにはどうしたらよろしいでしょうか。

<--- エクセルシート構成 -->
・項目シート
  A1:関東 B1:東京 C1:TO
  A2:関西 B2:京都 C2:KY
  A3:関東 B3:横浜 C3:YO
  A4:関西 B4:大阪 C4:OS

・ひな形(関西)

・ひな形(関東)

<--- マクロ実施結果 --> 
?@「A1:関東 B1:東京 C1:TO」は「・ひな形(関東)」のA3に「東京」、B3に「TO」入力し、シート名は「東京_TO」とする。

?A「A2:関西 B2:京都 C2:KY」は「・ひな形(関西)」のA3に「京都」、B3に「KY」入力し、シート名は「京都_KY」とする。

?B「A3:関東 B3:横浜 C3:YO」は「・ひな形(関東)」のA3に「横浜」、B3に「YO」入力し、シート名は「横浜_YO」とする。

?C「A4:関西 B4:大阪 C4:OS」は「・ひな形(関西)」のA3に「大阪」、B3に「OS」入力し、シート名は「大阪_OS」とする。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 一例です。

 Sub Test()
    Dim c As Range
    Dim tName As String
    Dim sh As Worksheet

    Application.ScreenUpdating = False

    With Sheets("設定")
        For Each c In .Range("A1", .Range("A" & Rows.Count).End(xlUp))
            tName = ""
            Select Case c.Value
                Case "関東"
                    tName = "ひな形(関東)"
                Case "関西"
                    tName = "ひな形(関西)"
            End Select

            If tName <> "" Then
                Sheets(tName).Copy After:=Sheets(Sheets.Count)
                With ActiveSheet
                    .Range("A3:B3").Value = c.Offset(, 1).Resize(, 2).Value
                    On Error Resume Next
                    .Name = c.Offset(, 1).Value & "_" & c.Offset(, 2).Value
                    On Error GoTo 0
                End With
            End If
        Next
    End With

 End Sub

(β) 2015/07/21(火) 11:33


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.