こんにちは、ヒガシです。
このページでは、以下の画像のように1行のデータを飛び飛びで2行に整理するVBAコードをご紹介していきます。
それではさっそくやっていきましょう!
VBAの実行環境を構築しておく
上記の作業をVBAを使って実行していきます。
VBAを使ったことがない、という方は以下の記事を参考に、まずは環境構築を進めましょう。
エクセルマクロ(VBA)の始め方!初心者向けに画像を使って詳細解説
1行データを飛び飛びで2行に整理するVBAコード
それでは本題である冒頭に紹介した処理を実行してくれるVBAコードをご紹介します。
Sub data_1d_2d()
Dim base_data() As Variant
Let base_data = Range("A1:J1").Value
For i = 1 To UBound(base_data, 2)
If (i - 1) Mod 2 = 0 Then
Cells(4, i \ 2 + 1) = base_data(1, i)
Else
Cells(5, i \ 2) = base_data(1, i)
End If
Next
End Sub
基本的には3行目にあるデータが記入されてるセルの領域をしていするだけでOKです。
領域を変えてテストしてみる
先ほどは1~10までのデータでしたが、次は1~14に増やしてやってみましょう。
先ほどのVBAコードの3行目を
Let base_data = Range(“A1:N1”).Value
に変更します。
これで準備OK。
以下が実行結果です。
こちらも問題なく実行できました。
おわりに
というわけで今回は、1行に記載されたデータを飛び飛びで2行に整理する方法をご紹介しました。
データ取得の都合上こんな感じのことをやらざるを得ないこともあると思いますのでぜひご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
ぜひ他の記事ものぞいてみてください。
コメント