質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

552閲覧

vba エクセルの 列のデータを空白ごとに配列に格納し行に並び替え

akakatsu

総合スコア4

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/09/25 01:36

以下のような 列に入っているデータを空白で区切り配列に格納し2枚目の画像の様に表示する方法を教えてください。
VBAを始めたばかりなのでご教授お願いします
イメージ説明

以下は並びかけ後の例です。
イメージ説明

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/09/25 01:42

まずご自身が思ったようにやってみてください。 大方のユーザは「質問ではなく作業依頼だ」と認識すると思います。
DreamTheater

2020/09/25 02:32

m.ts10806さんのコメントに「いいね」1票です。 質問者は毎回丸投げ質問していますね。 質問事項を改善する等、向上心ないの?
guest

回答1

0

ベストアンサー

丸投げ質問ですが、間違って回答してしまったのでお詫びの回答です。
配列に一括で入れてドン、みたいなのはできないので、空白行までを一区切りとしてループで回しています。
参考まで。

VBA

1Sub sample() 2 Dim r1 As Long 3 Dim r2 As Long 4 Dim tmp() As Variant 5 r1 = 1 6 r2 = 1 7 Do While Cells(r1, 1) <> "" 8 tmp = WorksheetFunction.Transpose(Range(Cells(r1, 1), Cells(r1, 1).End(xlDown))) 9 Range("A" & r2).Resize(1, UBound(tmp)) = tmp 10 r1 = r1 + UBound(tmp) + 1 11 r2 = r2 + 1 12 Loop 13 Range("A" & r2).Resize(r1, 1).Clear 14End Sub

以下は間違った回答なので無視してください。


具体的な条件とか仕様が書いてないので愚直に書いた場合です。

A2をB1に移動する。

VBA

1Range("B1").Value = Range("A2").Value ' A2の値をB1にコピー 2Range("A2").Clear ' A2の値をクリア

あとは同じ考えで他のセルも繰り返す。

投稿2020/09/25 01:44

編集2020/09/25 02:18
ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttyp03

2020/09/25 01:51 編集

あ、失礼。 配列に入れるって書いてあったか。
akakatsu

2020/09/25 02:13

すみません同じようなデータが100個ほど続くので配列に格納しないと対応できません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問