Makale numarası: 147803 - Son Gözden Geçirme: 01 Temmuz 2004 Perşembe - Gözden geçirme: 3.1

Dinamik olarak Excel 5.0 oluşturma OLE 2.0 denetim grafikleri

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu makalede, Visual Basic OLE 2.0 kapsayıcısı Denetimde görüntülenecek çalışma zamanı en yeni Excel 5.0 grafikleri oluşturmak gösterilmiştir.

Daha fazla bilgi

Visual Basic OLE kapsayıcı denetimi, çalıştırma sırasında yeni bir OLE nesneleri katıştırmak üzere kullanılabilir. Excel grafiği katıştırabilir, nesnelerin birisidir. Temel olarak, dört adımlı bir işlemi şöyledir:

  1. OLE denetimi yeni bir grafik katıştırmak için <a0></a0>, Excel.Chart veya Excel.Chart.5 Class özelliğini ayarlayın. Her iki (Excel.Chart ve Excel.Chart.5) için Excel grafikleri sınıflardır. Ancak Excel.Chart.5 bağımlı değildir; bu, Excel sürüm 5.0 grafik nesnesi belirtir.
  2. Nesne için OLE_CREATE_EMBED Action özelliğini ayarlayarak oluşturun. Bu, varsayılan Excel'den bir grafik (Grafik1) OLE denetimi içine katıştırır. Grafik (Grafik1) içeren de varsayılan çalışma (veri sağlamak için Sheet1) grafik için bir varsayılan çalışma kitabını (Kitap1) bir parçasıdır.
  3. Nesne değişkenlerini, OLE Otomasyonu ile grafik işlemek için gereken <a1>Excel</a1> nesneleri için başvuracak biçimde ayarlayın. Kodunuzu bu daha küçük ve anlamak daha kolay hale getirir.
  4. Grafiği biçimlendirmek için Grafik Sihirbazı yöntemini çağırın.

Başvuru Excel nesneleri için nesne değişkenlerini ayarlama

OLE denetimi oluşturduğunuz nesnesine başvuru sağlamak için nesne özelliği sağlar. Örneğin, aşağıdaki kod oluşturur ve grafik OLE denetimi katıştırır ve daha sonra başlığını ayarlar:
   Const OLE_CREATE_EMBED = 0
   Ole1.Class = "Excel.Chart.5"
   Ole1.Action = OLE_CREATE_EMBED
   Ole1.Object.HasTitle = 1
   Ole1.Object.ChartTitle.Caption = "Expenses"
				
her zaman nesne özelliğinden gidin, ancak hantal olacaktır. Kolaylaştırmak için <a0></a0>, istediğiniz nesneleri başvurmak için nesne değişkenlerini de ayarlayabilir. Değiştirilmiş bir sürümü önceki örnekle bir nesne değişkenlerini aşağıdadır:
   Const OLE_CREATE_EMBED = 0
   Dim objChart as Object
   Dim objChartTitle as Object
   Ole1.Class = "Excel.Chart.5"
   Ole1.Action = OLE_CREATE_EMBED
   Set objChart = Ole1.Object
   Set objChartTitle = Ole1.Object.ChartTitle
   objChart.HasTitle = 1
   objChartTitle.Caption = "Expenses"
				
üç nesne değişkenlerini, bu makalenin sonunda gösterilen örnek kullanır:

  • Bir grafiğe başvuru.
  • Bir çalışma sayfasına başvuru.
  • Bir uygulama nesnesine başvuru yapan.

Bir grafik biçimi için Grafik Sihirbazı yöntemi çağırma

Excel, grafiğe hızlı şekilde biçimlendirmek için <a0></a0>, Grafik Sihirbazı yöntemi sağlar. Grafik Sihirbazı yöntemine yap?lan bir ça?r?y? ile bir grafik, birçok önceden tanımlanmış biçimlerden birisinde oluşturabilirsiniz. Örneğin, bu yöntemi kullanır, ancak doğrudan nesne düzenleme grafiğin de kullanabilirsiniz.

Yöntem Grafik Sihirbazı'nı aramadan önce çalışma uygun verileri ile doldurulması gerekir. Bu örnek, rasgele verileri oluşturur. Çoğu zaman, işleyebileceğiniz daha anlamlı veri Excel'le kullanacaksınız. Bu örnekte, kategori etiketleri ve Seri etiketleri için bir sütun için 1 satır xlRows yönlendirmesini kullanılır. Nasıl, verileri çalışma sayfasına koymak gösteren bir diyagram aşağıdadır:
-----------------------------------------------------------
|                | Category 1 Label | Category 2 Label |
-----------------------------------------------------------
| Series 1 Label | Data Value       | Data Value       |
-----------------------------------------------------------
| Series 2 Label | Data Value       | Data Value       |
 -----------------------------------------------------------
|                |                  |                  |
				
(etiketler dahil) verileri çalışma sayfasına eklenmiş once, tüm aralığı diğer biçimlendirme parametreleri ile birlikte <a1>Grafik Sihirbazı</a1> yöntemine geçirin.

Grafik Sihirbazı sözdizimi, Parametreler ve açıklamaları

Sözdizimi:

Object.ChartWizard(Source, Gallery, Format, PlotBy, CategoryLabels, SeriesLabels, HasLegend, Title, CategoryTitle, ValueTitle, ExtraTitle)
Parameter       Description
--------------  -------------------------------------------------
Object          The Chart object.
Source          Specifies range that contains source data for the chart.
Gallery         Specifies chart type (see constants in example.)
Format          Specifies built-in autoformat.
PlotBy          Specifies orientation of the data (xlRows or xlColumns.)
CategoryLabels  The number of rows or columns containing category labels.
SeriesLabels    The number of rows or columns containing series labels.
HasLegend       Specifies if chart has a legend.
Title           The title text of the chart.
CategoryTitle   Category axis title text.
ValueTitle      Value axis title text.
ExtraTitle      Additional axis title text for some charts.
				
için <a1>Grafik Sihirbazı</a1> yöntemi en önemli olan parametreler:

  • PlotBy
  • CategoryLabels
  • SeriesLabels
Bu parametreleri ayarlanacak verilerinizi nasıl gittiği ya da belirlemek veya sahip olduğunuz verilerin sığması amacıyla başlatıldı.

Galeri ve biçim parametrelerini belirlemek için <a0></a0>, örneğin değiştirmek isteyebilirsiniz. Ayrıca, Excel'de Grafik Sihirbazı kullanımını kaydetmek ve kullanılan parametreleri'ne bakın.

Grafik Sihirbazı yöntemini çağıran uygulama ve nesne başvurularını kapatıyor sonra tüm bırakılır.

Adım adım örnek

  1. Yeni bir proje için Visual Basic'te başlatın. Varsayılan olarak, Form1 oluşturulur.
  2. Form1'e bir OLE 2.0 denetimi ekleyin ve Nesne Ekle iletişim kutusunda <a2>iptal</a2> düğmesini tıklatın.
  3. Bir KomutDüğmesi (Command1) Form1'e ekleyin.
  4. Yerine aşağıdaki kodu KomutDüğmesi olay'ı tıklatın.
           Private Sub cmdPrint_Click()
              Me.PrintForm
          End Sub
    
             Private Sub cmdQ147803_Click()
    
                ' Excel chart constants (ODK 1.0 XLCONST.BAS or MsgBox
                ' in Excel):
                Const xlArea = 1
                Const xlBar = 2
                Const xlColumn = 3
                Const xlLine = 4
                Const xlPie = 5
                Const xlRadar = -4151
                Const xlXYScatter = -4169
                Const xlCombination = -4111
                Const xl3DArea = -4098
                Const xl3DBar = -4099
                Const xl3DColumn = -4100
                Const xl3DLine = -4101
                Const xl3DPie = -4102
                Const xl3DSurface = -4103
                Const xlDoughnut = -4120
    
                ' Excel orientation constants:
                Const xlRows = 1
                Const xlColumns = 2
    
                Dim objChart As Object           'Object reference to Excel
                                                 'Chart
                Dim objXL As Object              'Object reference for Excel
                                                  App
                Dim objSheet As Object           'Object reference to Excel
                                                 'Worksheet
                Dim iRow As Integer              'Index variable for the
                                                 'current Row
                Dim iCol As Integer              'Index variable for the
                                                 'current Row
                Dim cRows As Integer             'Number of rows
                Dim cCols As Integer             'Number of Columns
                Dim cwSource As String           'Named Range
                Static cwGallery(15) As Integer  'Array for Chart types
                Static iGallery As Integer       'Index for Chart type array
                Dim cwFormat As Integer          'Format of Chart type
                Dim cwPlotBy As Integer          'How data is taken from
                                                 'Worksheet
                Dim cwCategoryLabels As Integer  'Rows/Cols with Catagory
                                                 'labels
                Dim cwSeriesLabels As Integer    'Rows/Cols with Catagory
                                                 'Labels
                Dim cwHasLegend As Integer       'Display Legend
                Dim cwTitle As String            'Chart Title
                Dim cwCategoryTitle As String    'Category Title
                Dim cwValueTitle As String       'Value Title
                Dim cwExtraTitle As String       'Extra Title for some Charts
                                                 'disable this button
                cmdQ147803.Enabled = False
                ' Fill in array with possible Chart types:
                cwGallery(1) = xlArea
                cwGallery(2) = xlBar
                cwGallery(3) = xlColumn
                cwGallery(4) = xlLine
                cwGallery(5) = xlPie
                cwGallery(6) = xlRadar
                cwGallery(7) = xlXYScatter
                cwGallery(8) = xlCombination
                cwGallery(9) = xl3DArea
                cwGallery(10) = xl3DBar
                cwGallery(11) = xl3DColumn
                cwGallery(12) = xl3DLine
                cwGallery(13) = xl3DPie
                cwGallery(14) = xl3DSurface
                cwGallery(15) = xlDoughnut
    
                ' Embed a new Excel 5.0 Chart into the OLE control:
                OLE1.CreateEmbed "", "Excel.Chart.5"
                'BEGIN FIX FOR DIFFERING OBJECT MODELS BETWEEN VERSIONS 7 & 8
                ' Set object references to Chart, Worksheet, and Application
                'objects:
                If Left(OLE1.object.Application.Version, 1) = "7" Then
                'Excel 95's object model is different from Excel 97's
                  Set objChart = OLE1.object ' Chart1 default chart
                Else  'assume all future excel object models are going to be
                      'the same
                Set objChart = OLE1.object.ActiveChart 'ole1.object is in
                                                       'Excel 97 the workbook
                End If
                Set objSheet = objChart.Parent.Worksheets(1) ' Sheet1 default
                                                             ' data
    
                Set objXL = objChart.Application
                'END FIX
                ' Set the number of columns and rows used for data:
                cCols = 10
                cRows = 3
    
                ' Create Series Labels on Worksheet:
                For iRow = 1 To cRows
                   objSheet.Cells(iRow + 1, 1).Value = "SL" & iRow
                Next
    
                ' Create Category Labels on Worksheet:
                For iCol = 1 To cCols
                   objSheet.Cells(1, iCol + 1).Value = "CL" & iCol
                Next
                'exiting here leaves the default chart drawn with sample data
                ' Create random data on Worksheet:
                Randomize Timer
                For iRow = 1 To cRows
                   For iCol = 1 To cCols
                      objSheet.Cells(iRow + 1, iCol + 1).Value = _
                   Int(Rnd * 50) + 1
                Next iCol
                Next iRow
    
                ' Name the Range containing the previously added data:
                objSheet.Range(objSheet.Cells(1, 1), objSheet.Cells(cRows + _
                1, cCols + 1)).Name = "ChartDataRange"
                'objSheet.Range(objSheet.Cells(1, 1), objSheet.Cells(cRows + _
                1, cCols + 1)).Clear
                ' Set the ChartWizard parameters:
                cwSource = "ChartDataRange"       'Name of Named Range
                iGallery = iGallery Mod 15 + 1    'Iterate through 15 Chart
                                                  'types
                cwFormat = 1                      'Use default format of Chart
                                                  'Type
                cwPlotBy = xlRows                 'Rows = Series orientation
                cwCategoryLabels = 1              '1 Row contains Category
                                                  'Labels
                cwSeriesLabels = 1                '1 Column contains Series
                                                  'Labels
                cwHasLegend = 1                   'Display the Legend
                cwTitle = "Embedded Chart"        'Chart Title
                cwCategoryTitle = "Categories"    'Category Title
                cwValueTitle = "Values"           'Value Title
                cwExtraTitle = "Extras"           'Extra Title
    
                ' Use the ChartWizard method to fill in the Chart:
                objChart.ChartWizard cwSource, cwGallery(iGallery), cwFormat,
                cwPlotBy, cwCategoryLabels, cwSeriesLabels, cwHasLegend,
                cwTitle,cwCategoryTitle, cwValueTitle, cwExtraTitle
                ' Shut Down Excel and erase objects:
                Set objXL = Nothing
                Set objChart = Nothing
                Set objSheet = Nothing
                'enable this button
                cmdQ147803.Enabled = True
             End Sub
    
          Private Sub cmdXLView_Click()
                OLE1.DoVerb vbOLEOpen
          End Sub
    						
  5. Projeyi kaydedin.
  6. Programı çalıştırmak ve Command1 düğmesini tıklatın. Ilk grafik oluşturulmalıdır.
  7. 15 Galerisi grafik türlerini biçim 1 arasında geçiş yapmak için Command1 düğmesi tutun.

NOTLAR

  • OLE denetimindeki bir grafiği değiştirmek için <a0></a0>, size denetimi ilk fiil özelliği, -1 için (Düzenle) ayarı ve sonra işlemi ayarlama etkinleştirmelisiniz özelliği, 7 (OLE_ACTIVATE). Nesne özelliği, daha sonra etkin bir nesneye başvuruyor.
  • Örnek biçim 1 ile Grafik Sihirbazı yöntemi kullanır. Diğer değerleri denemek isteyebilirsiniz.
  • Grafik Sihirbazı</a0> yöntemini kullandıktan sonra nesneleri, yöntemleri ve grafik nesnesinin özelliklerini değiştirmek için kullanmaya devam edebilirsiniz.
  • OLE denetimi çift tıklatarak veya sağ fare düğmesiyle tıklatıp açılır menüden düzen seçme grafiği düzenlemek kullanıcılar yükleyebilirler. OLE denetimi AutoActivate ve AutoVerbMenu özelliklerini ayarlayarak, bu beceriyi ortadan kaldırabilirsiniz.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic Professional Edition for Windows 4.0
  • Microsoft Visual Basic 4.0 Enterprise Edition
  • Microsoft Excel 5.0 Standard Edition
Anahtar Kelimeler: 
kbmt kb16bitonly kbhowto kbprogramming KB147803 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:147803  (http://support.microsoft.com/kb/147803/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.