184

私はVBAを初めて使用し、次の宣言と割り当てを1行に変換できるかどうかを知りたいです。

Dim clientToTest As String
clientToTest = clientsToTest(i)

また

Dim clientString As Variant
clientString = Split(clientToTest)
4

5 に答える 5

271

:残念ながら、VBAには省略形はありません。読みやすくするために、継続文字を1行に配置したい場合は、継続文字を使用した純粋に視覚的なものが最も近くなります。

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"
于 2010-07-15T13:55:54.430 に答える
24

次のように、オブジェクトを使用して並べ替えることができます。

Dim w As New Widget

しかし、文字列やバリアントではありません。

于 2010-07-15T13:50:12.790 に答える
3

以下に示すように、1行で値を定義して割り当てることができます。1行で宣言および割り当てられた2つの変数の例を示しました。複数の変数のデータ型が同じ場合:

Dim recordStart, recordEnd As Integer: recordStart = 935: recordEnd = 946
于 2020-07-17T05:51:36.810 に答える
2

実際、できますが、その方法はできません。

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

'code...

End Sub

また、subを呼び出すときに変数を別の方法で設定することも、デフォルト値のままにすることもできます。

于 2016-03-07T20:56:39.707 に答える
1

場合によっては、Withステートメントを使用することで、変数を宣言する必要性全体を回避できます。

例えば、

    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
于 2019-03-19T22:11:16.717 に答える