Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

ExcelのVBA配列とは何ですか?1つをプログラムする方法

VBAは、長年にわたってMicrosoftOfficeスイートの一部です。完全なVBアプリケーションの完全な機能とパワーを備えているわけではありませんが、VBAはOfficeユーザーにOffice製品を統合し、それらで行う作業を自動化する柔軟性を提供します。

VBAで利用できる最も強力なツールの1つは、データの全範囲を配列と呼ばれる単一の変数にロードする機能です。この方法でデータを読み込むことにより、さまざまな方法でその範囲のデータを操作または計算できます。

ExcelのVBA配列とは何ですか?1つをプログラムする方法

では、VBAアレイとは何ですか?この記事では、その質問に答え、独自のVBAスクリプトで使用する方法を示します。

VBAアレイとは何ですか?

ExcelでVBA配列を使用するのは非常に簡単ですが、配列を使用したことがない場合は、配列の概念を理解するのが少し複雑になる可能性があります。

内部にセクションがあるボックスのような配列を考えてみてください。 1次元配列は、1行のセクションを持つボックスです。 2次元配列は、2行のセクションを持つボックスです。

ExcelのVBA配列とは何ですか?1つをプログラムする方法

この「ボックス」の各セクションには、好きな順序でデータを入れることができます。

VBAスクリプトの最初に、VBA配列を定義してこの「ボックス」を定義する必要があります。したがって、1セットのデータを保持できる配列(1次元配列)を作成するには、次の行を記述します。

Dim arrMyArray(1 To 6) As String

プログラムの後半で、括弧内のセクションを参照することにより、この配列の任意のセクションにデータを配置できます。

arrMyArray(1) = "Ryan Dube"

次の行を使用して2次元配列を作成できます。

Dim arrMyArray(1 To 6,1 to 2) As Integer

最初の数字は行を表し、2番目の数字は列を表します。したがって、上記の配列は6行2列の範囲を保持できます。

この配列の任意の要素に、次のようにデータをロードできます。

arrMyArray(1,2) = 3

これにより、セルB1に3がロードされます。

配列は、文字列、ブール値、整数、浮動小数点数など、あらゆるタイプのデータを通常の変数として保持できます。

括弧内の数字も変数にすることができます。プログラマーは通常、Forループを使用して配列のすべてのセクションをカウントし、スプレッドシートのデータセルを配列にロードします。これを行う方法については、この記事の後半で説明します。

ExcelでVBAアレイをプログラムする方法

スプレッドシートから多次元配列に情報をロードしたい簡単なプログラムを見てみましょう。

例として、製品販売スプレッドシートを見てみましょう。ここでは、営業担当者の名前、アイテム、および総売上をスプレッドシートから引き出します。

ExcelのVBA配列とは何ですか?1つをプログラムする方法

VBAでは、行または列を参照するときに、左上から1で始まる行と列をカウントすることに注意してください。したがって、rep列は3、item列は4、total列は7です。

これらの3つの列を11行すべてに読み込むには、次のスクリプトを作成する必要があります。

Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i

ヘッダー行をスキップするには、最初のFor lookの行番号を1ではなく2から開始する必要があることに気付くでしょう。これは、セル値をロードするときに、配列行の値から1を引く必要があることを意味します。 Cells(i、j).Valueを使用して配列に挿入します。

VBA配列スクリプトを挿入する場所

プログラムをExcelにVBAスクリプトを配置するには、VBAエディターを使用する必要があります。 開発者を選択すると、これにアクセスできます メニューからコードの表示を選択します リボンの[コントロール]セクションにあります。

ExcelのVBA配列とは何ですか?1つをプログラムする方法

メニューに開発者が表示されない場合は、開発者を追加する必要があります。これを行うには、ファイルを選択します およびオプション [Excelのオプション]ウィンドウを開きます。

ExcelのVBA配列とは何ですか?1つをプログラムする方法

選択コマンドをドロップダウンからすべてのコマンドに変更します 。 開発者を選択します 左側のメニューから追加を選択します ボタンをクリックして、右側のペインに移動します。チェックボックスを選択して有効にし、 OKを選択します 終了します。

コードエディタウィンドウが開いたら、データが含まれているシートが左側のペインで選択されていることを確認します。 ワークシートを選択します 左側のドロップダウンでアクティブ化 右にあります。これにより、Worksheet_Activate()という新しいサブルーチンが作成されます。

この関数は、スプレッドシートファイルが開かれるたびに実行されます。このサブルーチン内のスクリプトペインにコードを貼り付けます。

ExcelのVBA配列とは何ですか?1つをプログラムする方法

このスクリプトは12行で機能し、列3から担当者名、列4からアイテム、列7から総売上高をロードします。

ExcelのVBA配列とは何ですか?1つをプログラムする方法

両方のForループが終了すると、2次元配列arrMyArrayには、元のシートから指定したすべてのデータが含まれます。

ExcelVBAでの配列の操作

すべての最終販売価格に5%の消費税を適用してから、すべてのデータを新しいシートに書き込むとします。

これを行うには、最初のループの後に別のForループを追加し、結果を新しいシートに書き込むコマンドを使用します。

For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k

これにより、配列全体がSheet2に「アンロード」され、合計に税額の5%を掛けた行が追加されます。

結果のシートは次のようになります。

ExcelのVBA配列とは何ですか?1つをプログラムする方法

ご覧のとおり、ExcelのVBA配列は非常に便利で、他のExcelのトリックと同じように用途が広いです。

上記の例は、配列の非常に単純な使用法です。はるかに大きな配列を作成し、それらに格納されているデータに対して並べ替え、平均化、またはその他の多くの機能を実行できます。

真のクリエイティブを実現したい場合は、2つの異なるシートのセルの範囲を含む2つの配列を作成し、各配列の要素間で計算を実行することもできます。

アプリケーションはあなたの想像力によってのみ制限されます。


  1. BIOS とは? BIOS の更新方法は?

    BIOS とは何か、および BIOS を更新する方法: お使いの PC で、キーボード、電源、またはインターネット接続、PC の速度などのソフトウェアに関連する問題に直面するときはいつでも、ほとんどの場合、問題は何らかの方法で BIOS に関連しています。同じことに関して修理担当者または IT 担当者に相談すると、さらなるトラブルシューティングを行う前に、BIOS を更新するよう提案または指示されます。多くの場合、BIOS を更新するだけで問題が解決するため、それ以上のトラブルシューティングは必要ありません。

  2. VBA を使用して Excel でセルをロックおよびロック解除する方法

    Excel でセル、列、および行をロックすると、データを自由に保護できます。ワークシートを保護すると、デフォルトですべてのセルがロックされます。これは、編集できないことを意味します。しかし、さまざまなセルを保護すると、保護されていないセルを自由に操作できます。ここでは、セルをロックおよびロック解除するためのさまざまな Excel テクニックを紹介します。多くのデフォルトの Excel 関数 があります 数式を作成するために使用できます。繰り返しますが、ワークシートを保護しない場合、セルをロックしても影響はありません。この記事では 6 を紹介します セルのロックとロック解除 の理想的な例 Ex