• ベストアンサー

セル内の2行をそれぞれ別のセルにコピーするマクロ

A列にデータが入力されていたとします。 そのデータのうち、複数のセルで改行されて2行になっています。 改行されているセルをサーチし、1行目をB列のセルに、2行目をC列のセルに分割してコピーしたいと思います。 この様な方法は、マクロで可能でしょうか。 適切な関数があれば、ご教授いただきたいと思います。

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

以下のマクロをVBE画面の標準モジュールにペーストしてください Sub Macro3() Dim idxR As Long, resF Application.ScreenUpdating = False For idxR = 1 To Range("a65536").End(xlUp).Row With Cells(idxR, 1) resF = Application.Find(Chr(10), .Value) If IsNumeric(resF) Then .Copy .Offset(0, 1).Select ActiveSheet.Paste End If End With Next idxR Range(Cells(1, 2), Cells(idxR, 2)).TextToColumns _ DataType:=xlDelimited, Other:=True, OtherChar:=Chr(10) Application.ScreenUpdating = True End Sub

huuraibou6
質問者

お礼

早速ありがとうございます! 感謝感激です!

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

こんな感じ? Sub Test() Dim r As Range For Each r In Range("A1:A10")   i = InStr(1, r.Value, vbLf)   If i > 0 Then     r.Offset(0, 1).Value = Left(r.Value, i - 1)     r.Offset(0, 2).Value = Mid(r.Value, i + 1, Len(r.Value))   End If Next r End Sub

huuraibou6
質問者

お礼

ありがとうございます。 参考にさせていただきます!

関連するQ&A

  • (Excel2003)すぐ左の最後の行までコピーするマクロを教えてください

    マクロ初心者です。 表記の件に就き、何卒ご教授の程、宜しくお願いします。 ・エクセルで以下のような表があるとします。 __A__B__C__D→ 1_数量_単価_金額 2_4,000_100_=B3*C3 3_5,000_200_ 4_3,000_120_ 5_5,000_160_ ↓ ・そしてこのAとB列が毎回下に増えるとして、C2セルの数式を  B列の最後の行までコピーするマクロを教えて下さい。 (実際は、C2セルにVLOOK関数が入っており、最終行は何千行まであります) 何卒ご教授の程、宜しくお願い申し上げます。 

  • Excelマクロで行を分割してコピーしたいのですが・・・

    いろいろなサイトで調べたのですが、方法が見つからずご質問させて頂きます。 Excelシートの中で値が入っている行まで順番に読み、A列のセルの値が'東京'かつB列の値が'2'以上の行があった場合に、その行をB列の値の数だけその行の下にコピーで挿入したいのですが、どのようなマクロにすれば良いかご教授頂けないでしょうか? 例) セルA1='東京' セルB1='3' の場合、 ---------------------------------- セルA1='東京' セルB1='1' セルA1='東京' セルB1='1' セルA1='東京' セルB1='1' ※セルB1を値の数だけ分割し、なおかつ値を'1'にする ※分割が終わったら、分割元の行を削除する ※その他の列の値はそのままコピーする 以上、宜しくお願い致します!

  • マクロでコピーしたセルを4行目毎に挿入する方法

    こんにちは!よろしくお願いいたします。 Excel2003で計算式が入力されている1行をコピーして 4行目にコピーしたセルを挿入したいのですが、複数 あるため、マクロを作りたいと思っています。   A   B  C 1 氏名 住所 件数  → 計算式が入力されている 2 氏名 住所 電話 3 氏名 住所 郵便 4 氏名 住所 ふりがな            → 1行目の計算式も含めコピーしたい この操作を繰り返すマクロを作成したいと思っています。 マクロは初心者です。ご指導よろしくお願いいたします。

  • Excel - 改行位置から右のデータ (最終行) の取得

    B1に数行のデータが(セル内)改行されて入力されていて、C1にB1の最終行のデータを取り出したいと思います。B1のデータを複数のセルに分けることなくマクロを使わず関数のみでできますでしょうか。 B1 22-June-06 28-June-06 30-June-06 C1 30-June-06

  • エクセル。複数行あるセルの分割はできますか?

    こんにちは。 教えてください! たとえば、B1のセルに次のように3行でデータが入力されていたとします。 B1「日本   アメリカ   イギリス」 これをそれぞれ分割して次のようにできる関数はありますか? B1「日本」 B2「アメリカ」 B3「イギリス」 それが簡単にできると仕事がスムーズになるので助かります。 もし次のことも解決できる方法があれば教えてもらえませんか? A1「8月30日」 B1「日本、アメリカ、イギリス(3行で入ってます) C1「出発」 というようなデータがあって、B1をそれぞれの国で分割して、A1とC1のデータをアメリカが入っている行、イギリスが入っている行に自動的にコピーされる。 これは関数ではなくて、マクロになるのかな?とも思うのですが、「分割が行われた行までコピー」というやり方がさっぱりわからないでいます。(その前に分割する方法が分からないんですけど・・・) ちなみに、データがずらーっと並んでいるリストの一部にあるB1のようなデータを整理したいというのが、目的になります。 どうぞ宜しくお願い致します。

  • エクセルでセルに数字を入力することにより行をコピー挿入

    仕事で送り状作成用のデーターを作っています。 行に郵便番号、住所、名前等が入力されてます。この1行をコピーしたいのですが、セルに必要する数字を入力することによりコピー挿入することはできないでしょうか? 例)    A       B       C      D 1  郵便番号  住所       名前    コピー行数 2  100-0001  東京都港区・・・ 山本太郎    5 3  101-0001  東京都江東区・・ 山田花子    8 以下複数行続きます。 D列に必要なコピー行数を入力することにより、一発でコピーできる方法をご教授くださいませ。エクセルのマクロを使えばできそうなのですが、マクロはあまりわかりませんので、できるだけ詳しくお願い致します。

  • エクセルで,複数行のままコピーしたい

    エクセルで,ある1つのセル(例えばA1)に,複数行になっている文字列があります(Alt+Enterにより,セル内で改行したものです). 別のセル(例えばB2)に「=A1」と入力すると,B2にはA1にある文字列が表示されるのですが,改行が消えてしまい,1行で表示されてしまいます. 改行を消さずにコピーする方法はないでしょうか.教えてください.エクセルのバージョンは2010です. よろしくお願いします.

  • Excelでセル内改行

    お世話になります。 早速ですがExcelで複数のセルに文字列が入力されている時、それらの文字を結合する場合はCONCATENATE関数を使いますよね? で、この応用(なのか判りませんが)で例えばセルA1に"改"の文字が、セルB1には"行"の文字が入っているとき、セルC1に 改 行 と改行させて2行で表示したいのですが、セルC1に"=CONCATENATE(A1,CHAR(13),B1)"とやってもうまくいきませんでした。 Alt+Enterで手入力する以外に関数、マクロ等で何かいい方法がありますか? よろしくお願いします。

  • 文字を検索してその行を別シートにコピーするマクロ

    A列 郵便番号 B列 住所 C列 名前 で出来ているファイルがあるのですが、住所欄にある市ごとにその行を別のシートにコピーさせたいと考えています。 マクロを起動させ、ダイアログボックスにコピーしたい市を入力するとSheet2又は新しいシートにコピーするマクロが出来たら助かるのですが、私用の範囲内で使いますのでご教授お願いします。

  • シート内の一部のセルを別シートにコピー

    Excelのマクロ(VBA)の記載方法について お分かりになる箇所だけでも結構ですので、 どなたかご教授を願い致します。 シートX   A    B   C  1 data1 data2 data3 2 x   data7 data8 3 data4 data5 data6 4 data7 data8 data9 シート Y   A   B   C    D 1 length 3  (任意) (任意) 2 xxxx (任意) (任意) (任意) 3 zzz  (任意) (任意) (任意) 4 (空白)(任意) (任意) (任意) 上記のような2つのシート(同一Excelファイル内)があって、 シートXの一部のセルを次の条件(1~4)でシートYにコピーしたい場合 1.コピー元の列の数は、シートYの "length"と書かれたセルの右となりの数字   とする(上記では3なので、A,B,C列をコピー対象) 2.コピー元の行の数は、シートXの1~4行目までとするが、   シートXのA列のセルが"x"だったら、その行は全てコピーしない。 3.コピー先(Y)の列は、コピー元(X)の列と一つずれてコピー(BならCに、CならDに) 4.コピー先(Y)の行は、シートYのA列で1行からで始めて空白セルになった行からコピー開始。 (上記では、A列で空白セルのある4行目からコピー) 上記条件で、下記のシートYを作成したいのですが、 この場合どようなマクロ(VBA)で実現できますでしょうか。 コピー結果(シートY)  A     B   C   D 1 length  3  (任意) (任意) 2 xxxx  (任意) (任意) (任意) 3 zzz   (任意) (任意) (任意) 4 (空白) data1 data2 data3 5 (任意) data4 data5 data6 6 (任意) data7 data8 data9

専門家に質問してみよう