1. データを平坦化して範囲 A から範囲 B に埋めます
1. 要件の説明
次のように、範囲 A7:A18 に A2:D4 の値を入力します。
2. 実現する
アイデア: A2:D4 の範囲の値を配列に取得し、配列をループして、その値を A7:A18 に書き込む
- 最初のステップは、Excel にボタンを挿入することです。著者はここで四角形を使用しています。四角形を右クリックし、「マクロの指定」を選択し、ポップアップ ボックスにマクロ名を入力し、「新規」をクリックして、VB エディターを開きます
- 2 番目のステップは、A2:D4 の値を取得することです。
Dim arr
arr = Worksheets("sheet1").Range("A2:D4")
- 3 番目のステップは、arr をループし、各値をイミディエイト ウィンドウ (コマンド ウィンドウやコンソールと同様) に出力することです。
For Each i In arr
Debug.Print i
Next
- 4 番目のステップでは、ターゲット範囲は A7:A18 であるため、6 に等しい start を定義します。arr を移動するとき、start は 1 ずつ増加し、Astart に値を割り当てます。
Dim start
start = 6
For Each i In arr
start = start + 1
Worksheets("sheet1").Range("A" & start).Value = i
Next
完全なコードは次のとおりです。
Sub 矩形2_Click()
Dim start
Dim arr
start = 6
arr = Worksheets("sheet1").Range("A2:D4")
For Each i In arr
start = start + 1
Worksheets("sheet1").Range("A" & start).Value = i
Next
End Sub
- ステップ 5: 四角形をクリックして、指定した範囲にデータを書き込みます。
2. セルを走査して 2 つの列を出力します。最初の列はセル名で、2 番目の列は対応する値です。
1. 要件の説明
A1:C4 から A6:B18 までのデータを入力します。最初の列にはセル名が表示され、2 番目の列には対応する値が表示されます。たとえば、A1 は aaa に対応します。
2. 実現する
セル名を取得します: target.Cells.Address(0, 0)
値の取得: target.Cells
Sub 矩形1_Click()
Dim start
start = 5
For Each i In Worksheets("sheet2").Range("A1:C4")
start = start + 1
Worksheets("sheet2").Range("A" & start).Value = i.Cells.Address(0, 0)
Worksheets("sheet2").Range("B" & start).Value = i.Cells
Next
End Sub
要約する
この記事では、VBA を使用して指定範囲のデータを取得し、データを走査し、指定範囲に動的に値を割り当てる方法を個人的な学習と参考のために記録します。