• ベストアンサー

1行のデータをスペースで区切って各セルへ振り分けるには?

hige_082の回答

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

最初の2行が余計です '''Worksheets("Sheet1").select''' ここと '''Range("B4").Select''' ここがいらない これで、処理したいセルを選択し、実行するだけ それとも、処理範囲を取得して実行したいなら n-junさんのものを参考にしてください

関連するQ&A

  • 該当するデータのみを右上のセルへ張付るには

    いつもお世話になっております。 また先に進めずに5日間悪戦苦闘しております。 とあるデータをExcelにエクスポートをすると、A列に全てデータが入っている状態のものが出来上がります。 一覧表として見やすい形にもって行きたく、タイトルやデータの作成日、項目等は各セルへ移動させました。 4行目・6行目に表示されているものが、3行目の項目で言うところの「番号」に該当し、5行目・7行目に表示されているものが、空欄を区切りとして左から「都道府県コード」・「市町村コード」・「番地」に該当します。 4行目と5行目がひとセットのデータ、6行目・7行目がひとセットのデータになります。(このセットデータが100件以上下に連なっています) ずれている奇数行のデータをまずB列へ移動し、そこからC・D行へ移したいと考えたのですが、どうしてもコードがうまく走ってくれませんでした。 以下が表です。      A       B       C    D   1 タイトル 2 データの作成日 3   番号    都道府県コード 市町村コード 番地  4 【100001】 5 00001 0003 ●●●530-8-7 6 【103205】 7 03479 7094 △○■1-2-3 こちらが作成したコードです。 Worksheets("Sheet1").select Range("A5").Select Selection.AutoFilter Field:=1,Criterial:="0*",Operator:=xlAnd Selection.SpecialCells(xlCellType Visible).Select Application.CutCopyMode = False Selection.Copy Selection.AutoFilter Selection.Offset(-1,1).Select ActiveSheets.Paste End Sub 仕様はExcel2002になります。 都道府県コードは必ず0から始まるので、0から始まるデータを右上のセルへ移動するという指示をだしているつもりです。 以上、宜しくお願い致します。

  • 【Excel VBA】データの最終行について

    Excel2003を使用しています。 ある一覧表形式のデータSheet1をSheet2に値のみコピーして、このSheet2を“印刷用”として、ページ設定等をして、印刷のみに使用しようと思っています。 Sheet2のI列、J列、K列には数値が入力されていて、I列、J列、K列のデータの最終行の1行下に、それぞれ6行目からデータ最終行までの合計の数式が入力されるよう、コードを追加したのですが、数式は入力されるものの、入力したい行に数式が入力されません。 マクロを実行して、数式が入力された行を見てみると、301行目に入力されていました。 Sheet1は別のシートのデータを数式により表示していて、数式が300行まで入力されているので、Sheet2の元になっているSheet1の影響(?)なのかな~?と…。こういう場合、どうすればいいでしょうか? コードは下記のようになっています。 よろしくお願いします。 ---------------------------------------- Sub 印刷用作成() Dim i As Integer Dim j As Long Sheets("Sheet1").Activate Range("B6:L6", Range("L6").End(xlDown)).Select Selection.Copy Sheets("Sheet2").Select Range("B6").PasteSpecial xlPasteValues Application.CutCopyMode = False For i = 9 To 11 j = Application.Max(j, Cells(65536, i).End(xlUp).Row + 1) Next For i = 9 To 11 Cells(j, i).FormulaR1C1 = "=SUM(R2C[0]:R[-1]C[0])" Next i End Sub

  • VBAコードを教えて下さい!!

    VBA初心者です。 皆様どうぞお力をお貸し下さい(>_<) A列「都道府県」・B列「市町村」・C列「番地」と分かれた列にそれぞれ入力してあります。 それをA~C列を結合して「都道府県市町村番地」と表示させたい。 データは2行目~500行目くらいまで入っています。 最初の1行(A2~C2)だけは出来たのですが、 それ以降データの終わりまではどうすれば良いのか分かりません。 どうぞ宜しくお願い致します。

  • エクセル マクロ 繰り返し処理の制御方法について

    お世話になります。エクセル初心者です。 登録用のシートから(データ数は、5000行ほど)、印刷用のシートへの転記を考えています。  下記のコードはテスト用の簡易なものですが、試行錯誤でここまではたどりついたのですが。  A列には大分類用の番号を入れてあるので、A列のセルの値が変わるまで、同じ処理を繰り返したいのですが、そのためにはどうしたらよいでしょうか。下記のコードの i と j の変数部分を連動させたい(A列の同じ値の数だけ、5行おきの転記をしたい)のですが。  Do until 構文も試してみたのですが(下記のコードでは、テストなので、「=2」のように固定にして(a)の部分に挿入してみました。)、エラーメッセージに従い、Loop の位置を(b)から(c)に変えてみたところ、無限ループに陥り、対処に困っています。  よろしくお願いします。 Sub test3() Dim i As Long Dim j As Long i = 1 '転記元の行 'Do until range("A"&i)=2 -----------------------(a) For j = 1 To 200 Step 5 '転記先の行 Range("J" & j) = Range("B" & i) Range("k" & j) = Range("C" & i) Range("L" & j) = Range("D" & i) Range("J" & j + 1) = Range("E" & i) Range("J" & j + 2) = Range("F" & i) Range("J" & j + 3) = Range("G" & i) i = i + 1 'Loop-------------------------------------------'(b) Next j 'Loop-------------------------------------------'(c) End Sub

  • 結合セルを含む空白行に下のデーターを上に詰める

    先ほど、質問を出さしていただいたのですが、説明文が詰められているため醜くなってしまいましたので再度出さしていただきます。 よろしくお願いします。 結合セルを含む空白行に、下のデーターを詰める。 下記の場合の、【かわ、やま】は、1行目と2行目のセルを結合させています。また、【うみ、たに】は、3行目と4行目のセルを結合させています。     A    B    C    D    E 1            100   AAA         かわ            やま 2            200   BBB 3            空白   空白         空白            空白 4            空白   空白 5            111   CCC         うみ            たに 6            222   DDD これを、下のようにしたいのです。     A    B    C    D    E 1            100   AAA              かわ            やま 2            200   BBB 3            111   CCC         うみ            たに 4            222   DDD 結合されているため下の構文では詰めることができません Dim LastRow As Long With ActiveSheet LastRow = Range("A232").End(xlUp).Row Range("B1:E" & LastRow).Sort Key1:=Range("B1"), Order1:=xlAscending End With

  • セルが何行なのかをVBAで取得したい

    セルが何行なのかをVBAで取得したいのですが どういうコードにすればいいですか? 例えば、A1セルに a b c と入ってる場合、3行ですが それをVBAで取得するにはどうすればいいですか? Sub test() Dim r As Range Set r = Cells(1, 1) If r.Value Like "*" & Chr(10) & "*" Then MsgBox "改行があります" End If End Sub というコードで改行が有ることは取得できたのですが 何行かまでは取得する方法がわかりません。

  • VBAで、配列のデータをセルに書き戻す方法について

    1000行200列の配列があり、配列の5列目と6列目のデータを、セルの10列目と11列目にすばやく書き戻す方法を教えてください。 (方法1) Dim DATA() As Long ReDim DATA(1 To 1000, 1 To 200) FOR 行番号= 1 TO 1000 CELLS(行番号,10).VALUE = DATA(行番号,5) CELLS(行番号,11).VALUE = DATA(行番号,6) NEXT (方法2) Dim DATA() As Long ReDim DATA(1 To 1000, 1 To 200) Dim WORK1() As Long ReDim WORK1(1 To 1000, 1 To 1) Dim WORK2() As Long ReDim WORK2(1 To 1000, 1 To 1) FOR 行番号= 1 TO 1000 WORK1(行番号,1) = DATA(行番号,5) WORK2(行番号,1) = DATA(行番号,6) NEXT RANGE("J1:J1000").VALUE = WORK1() RANGE("K1:K1000").VALUE = WORK2() (方法1)より(方法2)の方が早いのですが、WORKに貯めるのもめんどうなので、 RANGE("J1:K1000").VALUE = DATA(1,5), DATA(2,5), DATA(3,5),~,DATA(999,6),DATA(1000,6)のようなことができればと思います。 よろしくお願いします。

  • チェックボタンでチェックした値をセルに連続入力

    チェックボタンでチェックした行(表-1)を下記のコードでExcelセル(表-2)に入力できたのですが既にに"B2:E3","B10:E10",に値が入力されている場合、B4から続けて入力したいのですがどのように コードを追記すれば良いのかどなたかわかる方よろしくお願いします。 Sub 入力() Dim i As Integer Dim j As Integer Dim k As Integer k = 3 i = Range("Z65536").End(xlUp).Row For j = 3 To i If Range("Z" & j).Value = True Then k = k + 1 Range("B" & k).Value = k - 1 Range("H" & j, "K" & j).Copy Range("B" & k) End If Next j End Sub

  • 1行おきのデーターを他のシートに詰めて表示する。

    1行おきのデーターを他のシートに詰めて表示する。 よろしくおねがいします。 1行おきの(シート【A】)のデーターを、他の(シート【B】)に詰めて表示する。 EXCEL関数で Range("C5").Value =【A】!B5 Range("C6").Value =【A】!B7 Range("C7").Value =【A】!B9 Range("C8").Value =【A】!B11  ~ これをVBAで実施できないでしょうか。

  • iPod nanoアドレスデータ・・・

    お聞きしたいんですが、Ipodのアドレスデータの住所のところが 外国式(番地、市町村、都道府県、郵便番号)になっているんですがこれを標準の(都道府県、市町村、番地)にしたい場合どうすればいいのでしょうか。教えてください。お願いしますm(_ _)m