Új hozzászólás Aktív témák

  • Delila_1

    veterán

    válasz salmiakki #2587 üzenetére

    Igaz, hogy Control-t kérdeztél, de ez a makró az eddig felvitt legalsó és jobb szélső elemek bármilyen objektum alá-, és tőle jobbra 5 ponttal helyezi az új objektumot.

    Sub UjElem()
    Dim Bal As Single, Lent As Single, i As Long

    For i = 1 To ActiveSheet.Shapes.Count
    With ActiveSheet.Shapes(i)
    If .Left + .Width > Bal Then Bal = .Left + .Width + 5
    If .Top + .Height > Lent Then Lent = .Top + .Height + 5
    End With
    Next

    ActiveSheet.Shapes.AddShape(msoShapeRectangle, Bal, Lent, 70#, 58#).Select
    End Sub

    Az

    ActiveSheet.Shapes.AddShape(msoShapeRectangle, Bal, Lent, 70#, 58#).Select

    sorban kell meghatároznod az új elem típusát. A két utolsó érték helyére írd be a kívánt szélességet, és magasságot. Ez most egy téglalapot tesz be, de ha a sor helyett ezt írod:

    ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, _
    DisplayAsIcon:=False, Left:=Bal, Top:=Lent, Width:=102.75, Height:=25.5).Select

    akkor egy beviteli mezőt tesz a megfelelő helyre.

    Ez meg szépen egymás alá teszi a beviteli mezőket:

    Sub mm()
    Dim Bal As Single, Lent As Single, i As Long

    For i = 1 To ActiveSheet.Shapes.Count
    With ActiveSheet.Shapes(i)
    If .Left > Bal Then Bal = .Left
    If .Top + .Height > Lent Then Lent = .Top + .Height + 3
    End With
    Next

    ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, _
    DisplayAsIcon:=False, Left:=Bal, Top:=Lent, Width:=69.75, Height:=24).Select
    End Sub

    [ Szerkesztve ]

    Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

Új hozzászólás Aktív témák