Şeklin rengini değiştirmek

Katılım
10 Kasım 2006
Mesajlar
35
Excel Vers. ve Dili
2007 Türkçe
Excel sayfasına eklenen şeklin rengini Visual Basic kodlarıyla kontrol etmek istiyorum. Ben şeklin boyutunu değiştiren kodu buldum:
ActiveSheet.Shapes("1 Yuvarlatılmış Dikdörtgen").Height = 100
Ekte örnek bir proje var burda renk tuşuna basarak şeklin rengini değiştirmek için nasıl bir kod gerekiyor.

Excel VB kodların açıklamalarıyla örnekleriyle beraber listesini nerden bulabiliriz?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,272
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Dim x, y
 
Sub BOYUT()
If x = 0 Then
x = 1
ActiveSheet.Shapes("1 Yuvarlatılmış Dikdörtgen").Height = 100
Else
x = 0
ActiveSheet.Shapes("1 Yuvarlatılmış Dikdörtgen").Height = 50
End If
End Sub
 
Sub RENK()
If y = 0 Then
y = 1
ActiveSheet.Shapes("1 Yuvarlatılmış Dikdörtgen").Fill.ForeColor.SchemeColor = 11
Else
y = 0
ActiveSheet.Shapes("1 Yuvarlatılmış Dikdörtgen").Fill.ForeColor.SchemeColor = 65
End If
End Sub
 
Katılım
10 Kasım 2006
Mesajlar
35
Excel Vers. ve Dili
2007 Türkçe
Teşekkürler.
Bu VB kodları nereden temin edebiliriz? Amacınıza göre hangisini kullanıcağınızı nasıl belirliyorsunuz?
Eğer kodların ne olduğunu ve ne işe yaradığını bilmezsem her durumda buraya soru olarak dönmem gerekecek. Mesela şeklin içerisindeki yazıyı nasıl değiştireceğim?

Balık yemeyi değilde balık tutmayı öğretirseniz çok memnun olacağım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,272
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Bu tür kodları en basit Makro Kaydet yöntemi ile öğrenebilirsiniz.
Araçlar-Makro-Yeni Makro Kaydet menüsü kullanarak sayfada yaptığınız işlemleri kaydedebilirsiniz. Daha sonra kod editöründen ilgili makroyu inceleyebilirsiniz.
 
Katılım
10 Kasım 2006
Mesajlar
35
Excel Vers. ve Dili
2007 Türkçe
İlk başta bende makro kaydeti kullanmaya çalıştım fakat şeklin üzerinde yaptığım değişiklikleri kaydetmiyor. Mesala fare ile şeklin boyunu, rengini, içeriğini değiştirmeme yeni oluşturduğum makro içerisine hiç birşey eklemedi. Eğer hücre içerisine yazı yazarsam bunu makro olarak kabul ediyor. Şekil üzerindeki oynamaları neden kabul etmiyor. Yoksa yanlış yaptığım bir işlem mi var?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,272
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sizin eklemiş olduğunuz örnek dosyayı açtım. Makro kaydet yöntemi ile aşağıdaki kodu elde ettim.


Nasıl yaptım;

Dosyayı açtım.
Makro kaydet dedim.
Şekli seçtim.
En ve yüksekliğini değiştirdim.
Yazıyı değiştirdim. (DENEME yazdım)
Dolgu rengini sarı yaptım.
Yazı rengini kırmızı yaptım.
Yazı boyutunu 20 yaptım.
Yazı fontunu kalın yaptım.
Makroyu durdum. Aşağıdaki kod oluştu.

Kod:
Option Explicit
 
Sub Makro1()
'
' Makro1 Makro
' Makro Korhan AYHAN tarafından 18.10.2008 tarihinde kaydedildi.
'
'
    ActiveSheet.Shapes("1 Yuvarlatılmış Dikdörtgen").Select
    Selection.ShapeRange.ScaleWidth 1.4, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 1.61, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.Solid
    ActiveSheet.Shapes("1 Yuvarlatılmış Dikdörtgen").Select
    Selection.Characters.Text = "DENEME"
    With Selection.Characters(Start:=1, Length:=6).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 1
    End With
    Selection.Font.ColorIndex = 3
    Selection.Font.Bold = True
    With Selection.Font
        .Name = "Calibri"
        .Size = 20
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 3
    End With
    Range("A1").Select
End Sub
 
Katılım
10 Kasım 2006
Mesajlar
35
Excel Vers. ve Dili
2007 Türkçe
Malesef bende olmuyor. Ofis 2007 Türçe kullandığım için olabilir. 2007 sürümünde bir eksiklik mi var yoksa ayarlanması gereken püf noktası mı var?
Dediğim gibi sadece şekil üzerindeki değişiklikleri makro olarak almıyor. Hücrede yaptıklarımı kabul ediyor.
 
Üst