Macro (SVB) Program Examples - Creating a Random Sized Spreadsheet
This example application shows how to create a new Statistica Spreadsheet of a specific size. The program will create a dialog box where the user can enter the respective spreadsheet dimensions, then display another dialog box prompting the user to select a variable to highlight in red.
Sub Main On Error GoTo Leave ' go here if dialog box cancels ' Create a new, empty, spreadsheet Dim S As Spreadsheet Set S = Application.Spreadsheets.New Begin Dialog UserDialog 290,119,"Select Spreadsheet Size" ' %GRID:10,7,1,1 TextBox 170,14,80,21,.Rows TextBox 170,49,80,21,.Columns OKButton 40,91,90,21 Text 40,14,110,14,"Number of Rows:",.Text1 Text 20,49,130,14,"Number of Columns:",.Text2 CancelButton 150,91,100,21 End Dialog Dim dlg As UserDialog ' Prefill with current size of the spreadsheet dlg.Rows = CStr(S.NumberOfCases) dlg.Columns = CStr(S.NumberOfVariables) ' display the dialog Dialog dlg Dim R As Integer Dim C As Integer ' read the values that were set R = CInt(dlg.Rows) C = CInt(dlg.Columns) 'increase or decrease the size of the Spreadsheet as necessary If (R > S.NumberOfCases) Then ' need to increase number of cases S.AddCases(S.NumberOfCases, R-S.NumberOfCases) ElseIf (R < S.NumberOfCases) Then ' need to decrease number of cases S.DeleteCases(R+1, S.NumberOfCases) End If If (C > S.NumberOfVariables) Then ' need to increase number of variables S.AddVariables("NewV", S.NumberOfVariables, C-S.NumberOfVariables) ElseIf (C < S.NumberOfVariables) Then ' need to decrease number of cases S.DeleteVariables(C+1, S.NumberOfVariables) End If ' fill the Spreadsheet with random values S.EntireRange.FillRandomValues S.Visible = True ' Make column 1 be sequential For i = 1 To S.NumberOfCases S.value(1, i) = i ' Set Column 1 to sequential numbers Next S.Variable(1).Font.Bold = True ' Ask which variable to sort by nv = 0 ' initial number of selected variables Dim MyVars(1 To 1) As Long ' returned array of selected vars (index from 1) ret = SelectVariables1(S, "Select Variable to sort by", 1, 1, MyVars, _ nv, "Variables:") If ret And nv > 0 Then ' if a good return, and a variable was selected 'copy the selected variable number vNo = MyVars(1) 'sort by the selected variable S.SortData(vNo) 'Set the entire column Red S.Variable(vNo).Font.Color = RGB(255,0,0) End If Leave: 'Exit program End Sub
Copyright © 2021. Cloud Software Group, Inc. All Rights Reserved.