Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6270 / 13644 ツリー ←次へ | 前へ→

【45989】セル内のデータ分割 おすぎ♪ 07/1/20(土) 23:04 質問[未読]
【45991】Re:セル内のデータ分割 かみちゃん 07/1/20(土) 23:19 発言[未読]
【45994】Re:セル内のデータ分割 おすぎ♪ 07/1/20(土) 23:35 お礼[未読]
【45995】Re:セル内のデータ分割 かみちゃん 07/1/20(土) 23:46 発言[未読]
【45996】Re:セル内のデータ分割 おすぎ♪ 07/1/21(日) 0:14 お礼[未読]
【45992】Re:セル内のデータ分割 へっぽこ 07/1/20(土) 23:24 発言[未読]
【45993】Re:セル内のデータ分割 Kein 07/1/20(土) 23:33 回答[未読]
【46264】Re:セル内のデータ分割 おすぎ♪ 07/1/29(月) 2:52 お礼[未読]

【45989】セル内のデータ分割
質問  おすぎ♪  - 07/1/20(土) 23:04 -

引用なし
パスワード
   セル内に3つから5つぐらいのデータが
Altキー+Enterキーで改行されて保存されてます。

中には1個目データあり 2個目なし 3個目データありのように
一定ではないのです。
見た目には3行または5行と言う風にデータが並んでいます。

これを、分割して1セル1個データにしたいのですが・・・
Altキー+Enterキーで区分されているものをどのようにして
わけるのかその手法がわかりません。
セルの例
AAAAA
 BBBBB
CCCCCCCCCC

上記はすべて1セルに記載されてます。
数字もあり文字もありの混在で・・・途方にくれています。

Altキー+Enterキーを削除するマクロみたいなのはあったのですが
それをすると、1行にはなるのですがデータが1個になって
AAAAABBBBBCCCCCCCCCC
になってしまい、うまくいきません・・・
わかる方ご教授願います。

【45991】Re:セル内のデータ分割
発言  かみちゃん  - 07/1/20(土) 23:19 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>セル内に3つから5つぐらいのデータが
>Altキー+Enterキーで改行されて保存されてます。
>
>中には1個目データあり 2個目なし 3個目データありのように
>一定ではないのです。
>見た目には3行または5行と言う風にデータが並んでいます。
>
>これを、分割して1セル1個データにしたいのですが・・・

以下のような感じでできると思います。
A1:A2に元データがあるものとします。

Sub Sample()
 Dim c As Range
 Dim vntData As Variant
 
 For Each c In Range("A1:A2")
  vntData = Split(c.Value, vbLf)
  c.Resize(, UBound(vntData, 1) + 1).Value = vntData
 Next
End Sub

なお、セル内の改行コードについては、以下も参考にされてみてはいかがでしょうか?
http://www.officetanaka.net/excel/vba/tips/tips89.htm
(先頭から二文字は半角にしてください。)

【45992】Re:セル内のデータ分割
発言  へっぽこ  - 07/1/20(土) 23:24 -

引用なし
パスワード
   こんばんは。
例えばこんなの?

Sub サンプル()
 Dim i As Long
 Dim 分解結果格納用 As Variant
 
 MsgBox "A1の内容をバラしてB1から下ヘ設定します。"
 
 分解結果格納用 = Split(Range("A1").Value, vbLf)
 For i = LBound(分解結果格納用) To UBound(分解結果格納用)
  Cells(i + 1, "B").Value = 分解結果格納用(i)
 Next
 
 MsgBox "終了"
End Sub

【45993】Re:セル内のデータ分割
回答  Kein  - 07/1/20(土) 23:33 -

引用なし
パスワード
   処理する列(1列のみ)を選択し、横方向へと展開したいのなら

Sub Data_Split()
  If TypeName(Selection) <> "Range" Then Exit Sub
  If Selection.Columns.Count > 1 Then Exit Sub
  Selection.TextToColumns DataType:=xlDelimited, _
  ConsecutiveDelimiter:=True, Other:=True, OtherChar:=vbLf
End Sub

でも出来ますが。

【45994】Re:セル内のデータ分割
お礼  おすぎ♪  - 07/1/20(土) 23:35 -

引用なし
パスワード
   かみちゃん さん こんばんわ

>Sub Sample()
早速 試してみます

ありがとうございます

>なお、セル内の改行コードについては、以下も参考にされてみてはいかがでしょうか?
>http://www.officetanaka.net/excel/vba/tips/tips89.htm
>(先頭から二文字は半角にしてください。)
上記 うまく表示しませんでした・・・
登録しないといけないのでしょうか?

【45995】Re:セル内のデータ分割
発言  かみちゃん  - 07/1/20(土) 23:46 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>http://www.officetanaka.net/excel/vba/tips/tips89.htm
>>(先頭から二文字は半角にしてください。)
>上記 うまく表示しませんでした・・・
>登録しないといけないのでしょうか?

そんなことはないと思います。
「先頭から二文字は(全角になっているから)半角にしてください。」のとおりです。
投稿時制約により、半角の"ht"という文字を全角の"ht"という文字で書いています。

【45996】Re:セル内のデータ分割
お礼  おすぎ♪  - 07/1/21(日) 0:14 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>>http://www.officetanaka.net/excel/vba/tips/tips89.htm
>>>(先頭から二文字は半角にしてください。)
>>上記 うまく表示しませんでした・・・
>>登録しないといけないのでしょうか?
>
>そんなことはないと思います。
>「先頭から二文字は(全角になっているから)半角にしてください。」のとおりです。
>投稿時制約により、半角の"ht"という文字を全角の"ht"という文字で書いています。
すみません そのままアドレスにcopyしていたので
うまくいってなかったです 今 うまくいきました ありがとうございました

【46264】Re:セル内のデータ分割
お礼  おすぎ♪  - 07/1/29(月) 2:52 -

引用なし
パスワード
   ▼Kein さん:
>処理する列(1列のみ)を選択し、横方向へと展開したいのなら


やっとうまく動かせました。
すごく便利になりました。ありがとうございました。

6270 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free