ジョナサンはマクロを作成しており、セルの範囲を値で埋める必要があります。たとえば、彼が範囲A1:C1を埋める必要がある場合、現在、その範囲を埋めるには3つのステートメントが必要です。

Range("A1") = "Test1"

Range("B1") = "Test2"

Range("C1") = "Test3"

彼は、次のように、それらを1つのステートメントに入力する方法があるかどうか疑問に思います。

Range("A1:C1") = ("Test1","Test2","Test3")

ジョナサンの希望する構文は近いですが、機能しません。仕組みは次のとおりです:

Range("A1:C1") = Array("Test1","Test2","Test3")

Arrayステートメントの使用に注意してください。これは、以下が演算子の左側のセルのシーケンスで使用される値のシーケンスと見なされる必要があることをVBAに通知します。興味深いことに、次に示すように、値を変数に詰め込んだり、Arrayステートメントを使用したりすることもできます。

sOne = "Apples"

sTwo = "Oranges"

sThree = "Artichokes"

Range("A1:C1") = Array(sOne, sTwo, sThree)

必要に応じて、ストレート変数を使用することもできます。

Dim sMyStrings(2) As String sMyStrings(0) = "Apples"

sMyStrings(1) = "Oranges"

sMyStrings(2) = "Artichokes"

Range("A1:C1") = sMyStrings

上記のコードは、次のように書き直すこともできます。

Dim sMyStrings(2) As String sMyStrings = Array("Apples", "Oranges", "Artichokes")

Range("A1:C1") = sMyStrings

最後に、値を行ではなく単一の列に配置する場合は、次のように転置関数を使用する必要があります。

Range("A1:A3") = Application.Transpose(Array("Test1","Test2","Test3"))

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(11701)は、Microsoft Excel 97、2000、2002、および2003に適用されます。

Excel(Excel 2007以降)のリボンインターフェイスに関するこのヒントのバージョンは、次の場所にあります: