電子書籍の厳選無料作品が豊富!

いつもお世話になっております。
再びつまづいてしまったため、お教えいただきたく、宜しくお願い致します。
1行目はタイトル
2行目はデータ作成日
3行目は項目
が入力されております。
4行目からデータが入っているのですが、A列内に1行でまとまっている状態です。
個々のデータの間は半角スペースで区切ってあり、このスペースを利用して、3行目の項目のセルへデータを移動したいと考えております。
下記が表の状態です。

|   A  |   B   |   C  |D |E |
1|タイトル  |
2|データ作成日|
3|  番号  |都道府県コード|市町村コード|番地|備考|
4|012-3456789 04679 003 ●□△659-8 ◎●△□●~|
5|123-4567890 00367 048 ■○●△4-9-2 △●□~|

4行目からがデータ群です。B列から右側にはデータが存在しません。
理想は下記の通りです。

|   A  |   B   |   C  |   D   |E |
1|タイトル  |
2|データ作成日|
3|  番号  |都道府県コード|市町村コード|  番地   |備考|
4|012-3456789 |  04679   |  003   |●□△659-8 |◎●△□●~|
5|123-4567890 |  00367   |  048   |■○●△4-9-2|△●□~|

下記のように組んでみました。
Worksheets("Sheet1").select
Range("B4").Select
Dim c As Range
Dim j As Variant
For Each c In Selection
j =Split(c.Value," ")
c =Offset(0,0).Resize(1,UBound(j)+1)=j
Next c
End Sub

4行目のみ理想通りに動き、5行目からがどうしても動きません。

環境はExcelは2002です。
以上、宜しくお願い致します。

A 回答 (2件)

>Range("B4").Select


>In Selection
選択しているのがB4だけですからそうなりますね。

ところでA列にあるデータにB4をSelectしているのは不可解ですが、

In Range("A4" , Cells(Rows.Count,1).End(xlUp))
でA4~A列の最終行までとなります。

B列でよければ、
In Range("B4" , Cells(Rows.Count,2).End(xlUp))
でしょうか。

Selectするな!
http://www.officetanaka.net/excel/vba/speed/s2.htm
ご参考まで。
    • good
    • 0
この回答へのお礼

前回に引続きご回答ありがとうございます。
A列とB列を間違えており、誠に申し訳ありませんでした。
なんとか無事動きました。
ありがとうございました。

お礼日時:2009/02/11 23:12

最初の2行が余計です



'''Worksheets("Sheet1").select''' ここと
'''Range("B4").Select''' ここがいらない

これで、処理したいセルを選択し、実行するだけ
それとも、処理範囲を取得して実行したいなら
n-junさんのものを参考にしてください
    • good
    • 0

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