メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

概要

この記事には、いくつかの種類の配列を操作するために使用できる Microsoft Visual Basic for Applications プロシージャのサンプルが含まれています。

詳細情報

Microsoft では、明示または黙示を問わず、保証なしで、図のみのプログラミング例を提供しています。 これには、特定の目的に対する商品性または適合性に関する黙示の保証が含まれますが、これに限定されません。 この記事では、デモンストレーションされているプログラミング言語と、プロシージャの作成とデバッグに使用されるツールについて理解していることを前提としています。 Microsoft サポート エンジニアは、特定のプロシージャの機能を説明するのに役立ちますが、これらの例を変更して、特定の要件を満たすために追加の機能を提供したり、プロシージャを構築したりすることはできません。 注: Visual Basic for Applicationsプロシージャでは、アポストロフィ (') の後の単語はコメントです。
 

配列を塗りつぶし、ワークシートにコピーするには

  1. 新しいブックを開き、Visual Basic モジュール シートを挿入します。

  2. モジュール シートに次のコードを入力します。

    Sub Sheet_Fill_Array()
       Dim myarray As Variant
       myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
       Range("a1:a10").Value = Application.Transpose(myarray)
    End Sub
    
  3. [Sheet1] をクリックします。

  4. [ツール] メニューの [マクロ] をポイントし、[マクロ] をクリックします。

  5. [マクロ] ダイアログ ボックスで、[Sheet_Fill_Array] をクリックし、[実行] をクリックします。

ワークシートから値を取得し、配列を塗りつぶすには

  1. セル A1:A10 に Sheet1 の値を入力します。

  2. Visual Basic モジュール シートで、次のコードを入力します。

    Sub from_sheet_make_array()
       Dim thisarray As Variant
       thisarray = Range("a1:a10").Value
    
       counter = 1                'looping structure to look at array
       While counter <= UBound(thisarray)
          MsgBox thisarray(counter, 1)
          counter = counter + 1
       Wend
    End Sub
    
  3. [Sheet1] をクリックします。

  4. [ツール] メニューの [マクロ] をポイントし、[マクロ] をクリックします。

  5. [マクロ] ダイアログ ボックスで、[ from_sheet_make_array] をクリックし、[実行] をクリックします。

配列を渡して受け取る

  1. モジュール シートで、次のコードを入力します。

    Sub pass_array()
       Dim thisarray As Variant
       thisarray = Selection.Value
       receive_array (thisarray)
    End Sub
    
    Sub receive_array(thisarray)
       counter = 1
       While counter <= UBound(thisarray)
          MsgBox thisarray(counter, 1)
          counter = counter + 1
       Wend
    End Sub
    
  2. [シート 1] を選択し、範囲 A1:A10 を強調表示します。

  3. [ツール] メニューの [マクロ] をポイントし、[マクロ] をクリックします。

  4. [マクロ] ダイアログ ボックスで、[pass_array] をクリックし、[実行] をクリックします。

2 つの配列を比較するには

  1. Sheet1 に 2 つの名前付き範囲を作成します。 1 つの range1 ともう 1 つの range2 という名前を付けます。

    たとえば、セル範囲 A1:A10 を強調表示し、range1 という名前を付けます。セル範囲 B1:B10 を強調表示し、range2 という名前を付けます。

  2. モジュール シートに次のコードを入力します。

    Sub compare_two_array()
       Dim thisarray As Variant
       Dim thatarray As Variant
    
       thisarray = Range("range1").Value
       thatarray = Range("range2").Value
       counter = 1
       While counter <= UBound(thisarray)
          x = thisarray(counter, 1)
          y = thatarray(counter, 1)
          If x = y Then
             MsgBox "yes"
          Else MsgBox "no"
          End If
          counter = counter + 1
       Wend
    End Sub
    
  3. [シート 2] を選択します。

  4. [ツール] メニューの [マクロ] をポイントし、[マクロ] をクリックします。

  5. [マクロ] ダイアログ ボックスで、[ compare_two_array] をクリックし、[実行] をクリックします。

    比較ごとに 1 つのメッセージ ボックスが表示されます。

動的配列を塗りつぶすには

  1. モジュール シートで、次のコードを入力します。

    Sub fill_array()
    
       Dim thisarray As Variant
       number_of_elements = 3     'number of elements in the array
    
       'must redim below to set size
       ReDim thisarray(1 To number_of_elements) As Integer
       'resizes this size of the array
       counter = 1
       fillmeup = 7
       For counter = 1 To number_of_elements
          thisarray(counter) = fillmeup
       Next counter
    
       counter = 1         'this loop shows what was filled in
       While counter <= UBound(thisarray)
          MsgBox thisarray(counter)
          counter = counter + 1
       Wend
    
    End Sub
    
  2. [ツール] メニューの [マクロ] をポイントし、[マクロ] をクリックします。

  3. [マクロ] ダイアログ ボックスで、[fill_array] をクリックし、[実行] をクリックします。

注: 変数 "number_of_elements" を変更すると、配列のサイズが決まります。
 

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×