図を移動・コピーする:Excel VBA入門 |
スポンサードリンク | |
Sub zu_reset() Dim i As Integer For i = 21 To 26 Worksheets("Sheet1").Shapes("図" & i).Select Selection.ShapeRange.Left = Cells(4 * (i - 20), 9).Left Selection.ShapeRange.Top = Cells(4 * (i - 20), 9).Top Next i For i = 27 To 32 Worksheets("Sheet1").Shapes("図" & i).Select Selection.ShapeRange.Left = Cells(4 * (i - 26), 11).Left Selection.ShapeRange.Top = Cells(4 * (i - 26), 11).Top Next i Range("A1").Select End Sub |
Private Sub Worksheet_Change(ByVal Target As Range) ' ' 図21~32の12枚 ' Dim i As Integer If Intersect(Target, Range("B3")) Is Nothing Then Exit Sub '図をそれぞれ元の位置に表示する For i = 21 To 26 Worksheets("Sheet1").Shapes("図" & i).Select Selection.ShapeRange.Left = Cells(4 * (i - 20), 9).Left Selection.ShapeRange.Top = Cells(4 * (i - 20), 9).Top Next i For i = 27 To 32 Worksheets("Sheet1").Shapes("図" & i).Select Selection.ShapeRange.Left = Cells(4 * (i - 26), 11).Left Selection.ShapeRange.Top = Cells(4 * (i - 26), 11).Top Next i '選択した国の国旗をD3セル移動する Worksheets("Sheet1").Shapes("図" & 20 + Range("C3").Value).Select Selection.ShapeRange.Left = Range("D3").Left + 5 Selection.ShapeRange.Top = Range("D3").Top + 3 Range("I1").Select End Sub |
Private Sub Worksheet_Change(ByVal Target As Range) Dim myShape As Variant Dim myCnt As Integer If Intersect(Target, Range("A2")) Is Nothing Then Exit Sub ' 図を削除 Worksheets("Sheet3").Select For Each myShape In Worksheets("Sheet3").Shapes If Left(myShape.Name, 1) = "図" Then myShape.Delete End If Next '選択した図をコピーして貼り付ける myCnt = Worksheets("Sheet3").Range("B2").Value Worksheets("Sheet1").Shapes("図" & myCnt + 20).Copy ActiveSheet.Paste Selection.Top = Range("C2").Top + 5 Selection.Left = Range("C2").Left + 3 Range("a1").Select End Sub |
スポンサードリンク
PageViewCounter
Since2006/2/27