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, 5996 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
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
DNS
Hostnames für mehrere IPs ermitteln (3)

Frage von Oneil-1989 zum Thema DNS ...

Microsoft Office
gelöst Config Dateien in Visio Shapes hinterlegen (2)

Frage von Hanuta zum Thema Microsoft Office ...

Mac OS X
gelöst 500 Wordfiles die jeweilige Anzahl an Wörtern ermitteln (26)

Frage von xp-user zum Thema Mac OS X ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (17)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...