動作検証バージョン:Windows 11 Home + 64bit Excel(バージョン2308 ビルド16731.20000 クイック実行)
Excel自体を操作するPythonの外部ライブラリ「xlwings」を使っていると、Excel VBAもこうだったら良かったのに! と感じることがよくあります。
リストのデータをセル範囲に入力する処理もその1つです。
xlwingsを使った、リストからセル範囲へのデータ入力の手軽さを知ると、Excel VBAの配列からセル範囲への入力もこうだったら良かったのに! と思わざるを得ません。
[スポンサードリンク]
Excel VBAで配列のデータをセルに入力するサンプルマクロ
Excel VBAで配列のデータをセル範囲に入力するには以下のようなマクロにする必要があります。
Sub 配列のデータをセルに()
Dim arr As Variant
arr = Array(1, 2, 3)
Range("A1:C1").Value = arr
End Sub
Dim arr As Variant
arr = Array(1, 2, 3)
Range("A1:C1").Value = arr
End Sub
実行すると、A1:C1セルに「1」「2」「3」が入力されます。
ここでのポイントは
Range("A1:C1").Value = arr
です。
代入するセル範囲を、配列のサイズと同じにして指定する必要があります。
xlwingsでリストをセルに入力する場合
それに対しxlwingsでリストのデータをセル範囲に入力する場合
sht.range('A1').value = arr
で済んでしまいます。
ポイントは、
sht.range('A1').value = arr
です。
先頭のセル1つだけを指定すればOKです。
これで、A1:C1セルに入力が行われます。
Excel VBAで
Range("A1").Value = arr
を実行したときには、A1セルにしかデータ入力は行われません。
Excel VBAが、xlwings的な挙動であったなら、Excel VBAで配列を苦手とする人はもっと少なかったのではないかと思わざるを得ません。
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Excel VBAで配列をセルに入力するコードがxlwingsのように書けたなら