Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Excel VBAで配列をセルに入力するコードがxlwingsのように書けたなら

Excel VBAで配列をセルに入力するコードがxlwingsのように書けたなら

動作検証バージョン: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

実行すると、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のように書けたなら

「配列」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.