Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kreis in Form zeichnen

Kreis in Form zeichnen
14.11.2005 12:23:32
Mike
Hallo Zusammen,
wie zeichne ich einen Kreis/Rechteck/Linie in ein VBA Form.
Ich weiß das es dieses Werkzeug in VB gibt aber in VBA kann ich es nicht finden.
Wer weiß Abhilfe?
Gruß Mike
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kreis in Form zeichnen
14.11.2005 16:37:46
Leo
Hi,
ist ziemlich aufwändig, Beispiel für eine Linie:
Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Private Declare Function GetDC Lib "user32.dll" (ByVal hWnd As Long) As Long
Private Declare Function TextOut Lib "gdi32.dll" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function SetBkMode Lib "gdi32.dll" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
Private Declare Function SetTextColor Lib "gdi32.dll" (ByVal hdc As Long, ByVal crColor As Long) As Long
Private Declare Function LineTo Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function MoveToEx Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByRef lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Private hWnd As Long

Private Sub UserForm_Click()
Dim hdc As Long
Dim position As POINTAPI
hdc = GetDC(hWnd)
If hWnd Then
MoveToEx hdc, 50, 50, position
LineTo hdc, Me.Width / 2, Me.Height - 50
End If
End Sub


Private Sub UserForm_Activate()
hWnd = GetForegroundWindow
End Sub

mfg Leo
Anzeige
AW: Kreis in Form zeichnen
14.11.2005 16:59:37
Galenzo
ist das eine Möglichkeit:
1) in die Userform ein Bild-Steuerelement einfügen
2) im Blatt eine Linie/Kreis/Rechteck.. zeichenen und kopieren
3) bei Eigenschaften des Bild-Steuerelements auf "Picture" klicken und mit STRG+V einfügen
Viel Erfolg!
;
Anzeige
Anzeige

Infobox / Tutorial

Kreis in Form zeichnen


Schritt-für-Schritt-Anleitung

Um einen Kreis in einer VBA-Form zu zeichnen, kannst du die Windows API-Funktionen verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. UserForm erstellen: Klicke im Projektfenster mit der rechten Maustaste auf "VBAProject" und wähle Einfügen > UserForm.

  3. Code einfügen: Doppelklicke auf die UserForm und füge den folgenden Code ein:

    Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
    Private Declare Function GetDC Lib "user32.dll" (ByVal hWnd As Long) As Long
    Private Declare Function SetBkMode Lib "gdi32.dll" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
    Private Declare Function SetTextColor Lib "gdi32.dll" (ByVal hdc As Long, ByVal crColor As Long) As Long
    Private Declare Function Ellipse Lib "gdi32.dll" (ByVal hdc As Long, ByVal nLeftRect As Long, ByVal nTopRect As Long, ByVal nRightRect As Long, ByVal nBottomRect As Long) As Long
    
    Private hWnd As Long
    
    Private Sub UserForm_Activate()
       hWnd = GetForegroundWindow
    End Sub
    
    Private Sub UserForm_Click()
       Dim hdc As Long
       hdc = GetDC(hWnd)
       If hWnd Then
           Ellipse hdc, 50, 50, 150, 150  ' Hier wird der Kreis gezeichnet
       End If
    End Sub
  4. UserForm testen: Schließe den VBA-Editor und starte die UserForm.


Häufige Fehler und Lösungen

  • Fehler: "Komponente nicht gefunden"
    Lösung: Stelle sicher, dass du alle API-Deklarationen korrekt eingegeben hast.

  • Fehler: Der Kreis wird nicht angezeigt.
    Lösung: Überprüfe, ob du das UserForm klickst, während es aktiv ist. Der Kreis wird nur beim Klick gezeichnet.


Alternative Methoden

Eine einfachere Methode, um einen Kreis in Excel zu zeichnen, besteht darin, ein Bild-Steuerelement zu verwenden:

  1. Füge ein Bild-Steuerelement in die UserForm ein.
  2. Zeichne einen Kreis oder ein Rechteck auf dem Excel-Blatt.
  3. Kopiere das gezeichnete Objekt und füge es im Bild-Steuerelement mit STRG + V ein.

Dies ist eine schnelle Möglichkeit, um Formen in eine VBA-Form einzufügen, ohne den Code manuell zu schreiben.


Praktische Beispiele

Hier sind einige Beispiele für die Verwendung von Ellipse, um verschiedene Formen zu zeichnen:

  • Kreis zeichnen:

    Ellipse hdc, 50, 50, 150, 150  ' Zeichnet einen Kreis
  • Ellipse zeichnen:

    Ellipse hdc, 50, 100, 200, 150  ' Zeichnet eine Ellipse

Diese Beispiele kannst du in den UserForm_Click-Event einfügen, um verschiedene Formen zu testen.


Tipps für Profis

  • Experimentiere mit den Koordinaten in der Ellipse-Funktion, um die Größe und Position des Kreises anzupassen.
  • Nutze die SetBkMode-Funktion, um den Hintergrundmodus zu ändern, falls du Transparentzeilen zeichnen möchtest.
  • Beim Zeichnen von mehreren Formen, kannst du die Zeichnungsfunktionen in einer Schleife verwenden, um Zeit zu sparen.

FAQ: Häufige Fragen

1. Wie kann ich den Kreis farbig machen?
Um den Kreis farbig zu machen, musst du die SetTextColor-Funktion verwenden, um die Zeichenfarbe festzulegen, bevor du die Ellipse-Funktion aufrufst.

2. Kann ich auch andere Formen zeichnen?
Ja, du kannst auch Rechtecke oder Linien zeichnen, indem du die entsprechenden GDI-Funktionen wie Rectangle oder LineTo verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige