私は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
しかし、文字列やバリアントではありません。
実際、できますが、そうではありません。
Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True)
'code...
End Sub
また、サブルーチンを呼び出すときに変数を異なる方法で設定したり、デフォルト値のままにしたりできます。
With
statement を使用することで、変数を宣言する必要性全体を回避できる場合があります。
例えば、
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