[vba] VBA에서 동시에 변수를 선언하고 할당 할 수 있습니까?

VBA를 처음 사용하고 다음 선언 및 할당을 한 줄로 변환 할 수 있는지 알고 싶습니다.

Dim clientToTest As String
clientToTest = clientsToTest(i)

또는

Dim clientString As Variant
clientString = Split(clientToTest)



답변

불행히도 VBA에는 줄임말이 없습니다 :. 가독성을 높이기 위해 연속 문자를 원하는 경우 연속 문자를 사용하는 것이 가장 시각적입니다 .

Dim clientToTest As String:  clientToTest = clientsToTest(i)
Dim clientString As Variant: clientString = Split(clientToTest)

힌트 (기타 답변 / 설명 요약) : 개체와도 작동 (Excel 2010) :

Dim ws  As Worksheet: Set ws = ActiveWorkbook.Worksheets("Sheet1")
Dim ws2 As New Worksheet: ws2.Name = "test"


답변

다음과 같이 객체를 사용하여 정렬 할 수 있습니다.

Dim w As New Widget

그러나 문자열이나 변형이 아닙니다.


답변

실제로는 가능하지만 그렇게 할 수는 없습니다.

Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True)

'code...

End Sub

하위를 호출 할 때 변수를 다르게 설정하거나 기본값으로 설정할 수 있습니다.


답변

경우에 따라 Withstatement 를 사용하면 변수를 선언 할 필요가 없습니다 .

예를 들어

    Dim fd As Office.FileDialog
    Set fd = Application.FileDialog(msoFileDialogSaveAs)
    If fd.Show Then
        'use fd.SelectedItems(1)
    End If

이것은 다음과 같이 다시 쓸 수 있습니다

    With Application.FileDialog(msoFileDialogSaveAs)
      If .Show Then
        'use .SelectedItems(1)
      End If
    End With


답변

아래에 표시된대로 한 줄에 값을 정의하고 할당 할 수 있습니다. 한 줄로 선언되고 할당 된 두 변수의 예를 제시했습니다. 여러 변수의 데이터 유형이 동일한 경우

 Dim recordStart, recordEnd As Integer: recordStart = 935: recordEnd = 946


답변