Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Füllfarbe eines Vorhandenen Shapes ermitteln

Frage Entwicklung VB for Applications

Mitglied: aruba1

aruba1 (Level 1) - Jetzt verbinden

14.12.2010 um 14:01 Uhr, 6090 Aufrufe, 3 Kommentare

Hallo,

ich habe folgendes Problem. Ich habe in einer Exceldatei verschiedene Shapes mit unterschidlichen Füllfarben. Wie kann ich per VBA den Wert der Füllfarbe eines Shapes ermitteln?

Mit den Texteigenschaften und den Größen und Positionsangaben hat schon geklappt.


Dim ClipAblage As DataObject
Set ClipAblage = New DataObject
X = 2
For Each m_shape In ActiveWorkbook.ActiveSheet.Shapes

If Left(m_shape.Name, 3) = "Ova" Then
Worksheets("CB").Range("BA" + CStr(X)).Value = m_shape.Name
Worksheets("CB").Range("BB" + CStr(X)).Value = m_shape.Top
Worksheets("CB").Range("BC" + CStr(X)).Value = m_shape.Left
Worksheets("CB").Range("BD" + CStr(X)).Value = m_shape.Height
Worksheets("CB").Range("BE" + CStr(X)).Value = m_shape.Width
m_shape.Select
With Selection
Rem Textinhalt
ClipAblage.SetText Selection.Characters.Text
If Selection.Characters.Text <> "" Then
Worksheets("CB").Range("BF" + CStr(X)).Value = Selection.Characters.Text
End If
Rem Schriftgrösse
ClipAblage.SetText Selection.Font.Size
Worksheets("CB").Range("BG" + CStr(X)).Value = Selection.Font.Size
Rem Schriftart
ClipAblage.SetText Selection.Font.Name
Worksheets("CB").Range("BH" + CStr(X)).Value = Selection.Font.Name
Rem Füllfarbe

End With
X = X + 1
End If


Vielen Dank für eure Hilfe im Voraus.
Mitglied: 76109
14.12.2010 um 19:20 Uhr
Hallo aruba1!

In etwa so:
01.
'.... 
02.
    For Each Shape In ActiveWorkbook.ActiveSheet.Shapes 
03.
        With Shape.OLEFormat.Object 
04.
            With .Font 
05.
                f_Name = .Name                  'String 
06.
                f_Size = .Size                  'Double 
07.
                f_FontStyle = .FontStyle        'String 
08.
                f_Color = .Color                'Double 
09.
                f_ColorIndex = .ColorIndex      'Long 
10.
                f_Bold = .Bold                  'True(-1)/False(0) 
11.
                f_Italic = .Italic              'True(-1)/False(0) 
12.
            End With 
13.
             
14.
            With .Interior 
15.
                i_Color = .Color                'Double 
16.
                i_ColorIndex = .ColorIndex      'Double 
17.
            End With 
18.
        End With 
19.
    Next 
20.
'....
und anstelle von
01.
With Shape.OLEFormat.Object
geht's auch mit
01.
With Shape.DrawingObject
Gruß Dieter
Bitte warten ..
Mitglied: aruba1
15.12.2010 um 21:57 Uhr
Hallo Dieter,

irgendwie klappt das nicht. Als Ergebnis kommt eine Farbe als Zahl raus, z. B. 16777215.

Hast du vielleicht noch eine Idee?

Vielen Dank
Bitte warten ..
Mitglied: 76109
16.12.2010 um 17:17 Uhr
Hallo aruba1!

Zitat von aruba1:
irgendwie klappt das nicht. Als Ergebnis kommt eine Farbe als Zahl raus, z. B. 16777215.
Was heißt klappt nicht?

Dezimal 16777215 = der Farbwert für Weiß (Hex FFFFFF) und als ColorIndex hast Du den Wert --4105 und der steht für die Konstante XlAutomatic bzw "Keine Füllung"

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Microsoft Office
Excelsheet gesperrt durch nicht mehr vorhandenen AD-User (5)

Frage von Dopamin85 zum Thema Microsoft Office ...

Datenbanken
gelöst MySQL Function Anzahl Datensätze ermitteln (4)

Frage von MultiStorm zum Thema Datenbanken ...

Visual Studio
gelöst SIDs eines Verzeichnisses ermitteln (1)

Frage von joehuaba zum Thema Visual Studio ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (32)

Frage von Maik82 zum Thema Linux Netzwerk ...

CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (20)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...

Hardware
gelöst PCI-Express-Adapterfrage (14)

Frage von DerWoWusste zum Thema Hardware ...