プロが教える店舗&オフィスのセキュリティ対策術

以下の処理をしたいのですが、マクロが分からないのでご教授願えますか?

1991.12-16 A B C
D E F
G
1991.12-16 H I
J K L
M N

これら全てセルAに入力されているデータです。
行数は1から順に2,3と続いています。
ここでは6行ですが本来は最終行は1000や2000などと毎回異なります。

これを以下のようにしたいです。
1991.12-16 A B C D E F G
1991.12.16 H I J K L M N

こちらもセルAに表示されるようにしたいです。

簡単にまとめると、年月単位で横一列になるようなマクロを教えてほしいです。

質問者からの補足コメント

  • 最初になるのは必ず日付です。

    1行にしたいデータの行数は不特定です。
    また、B列より右にはデータはありません。
    可能です!

    No.2の回答に寄せられた補足コメントです。 補足日時:2021/09/22 11:20
  • VBAで、ボタンを押すことで1行にするというマクロにしたいです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/09/22 11:24

A 回答 (5件)

'ウォ~イェ~~ィエイエ~イエイエ~~ウォウォ~オ~


'初めまして君の事を僕は知らない!!でも・・・・。
'こんなのでどうでしょう!!

Sub Macro1()
Dim i As Long
Dim a As String
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
If IsDate(Replace(Split(Cells(i, "A").Value, " ")(0), ".", "-")) Then
Cells(i, "A").Value = Cells(i, "A").Value & a
a = ""
Else
a = Cells(i, "A").Value & a
Cells(i, "A").Delete (xlShiftUp)
End If
Next i
End Sub
    • good
    • 0

No.2です。



>最初になるのは必ず日付です。

他の行は最初は日付でなくとも数字ではあるの?
または日付なら年を 1900~2099 と考えたとして 19* 20* を頭文字として切り分けられる内容でしょうか?
    • good
    • 0

No.1の者です。



質問者さんが、マクロを作る姿勢が必要だと思います。
ヒントや、不明な点は、ここへ記載されれば回答してくれる方が多いかと。

取り合えず、今回のマクロで必要そうな命令文を記載しておきます。
先ずは、それを使って、ある程度組み立ててみて下さい。


●表の最終行まで繰り返す
https://excel-ubara.com/excelvba1r/EXCELVBA506.h …


1991.12-16 A B C

IF 〇〇 Like "####.##-##*" Then で判定できるかと。

●Like演算子 
https://dailyrecords.blog/archives/9080#1__22


●文字の結合(&アンパサンド)
https://excel-ubara.com/excelvba1/EXCELVBA314.html
    • good
    • 0

データ形式として


・必ず最初になるのは『日付?』っぽい『数字』が頭文字の行ですか?
・1行にしたいデータの行数は不特定?

ちなみにB列より右にデータはありますか?
例えば一度B列に書き出しておいて、最後にA列を削除しデータをA列にするのは可能でしょうか?
この回答への補足あり
    • good
    • 0

おはようございます。



念のために、ExcelのVBAでしょうか?それとも、Access?
Accessだと分からないので。。。

下記、Excelなら、
必ず3行単位なのでしょうか?
多少手間ではありますが、関数や手作業、フィルターでも可能の様な
 気がしますが、それではダメでしょうか?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!