私はVBAを初めて使用し、次の宣言と割り当てを1行に変換できるかどうかを知りたいです。
Dim clientToTest As String
clientToTest = clientsToTest(i)
また
Dim clientString As Variant
clientString = Split(clientToTest)
私はVBAを初めて使用し、次の宣言と割り当てを1行に変換できるかどうかを知りたいです。
Dim clientToTest As String
clientToTest = clientsToTest(i)
また
Dim clientString As Variant
clientString = Split(clientToTest)
:
残念ながら、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"
次のように、オブジェクトを使用して並べ替えることができます。
Dim w As New Widget
しかし、文字列やバリアントではありません。
以下に示すように、1行で値を定義して割り当てることができます。1行で宣言および割り当てられた2つの変数の例を示しました。複数の変数のデータ型が同じ場合:
Dim recordStart, recordEnd As Integer: recordStart = 935: recordEnd = 946
実際、できますが、その方法はできません。
Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True)
'code...
End Sub
また、subを呼び出すときに変数を別の方法で設定することも、デフォルト値のままにすることもできます。
場合によっては、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