- ベストアンサー
文字列の数抽出、行挿入マクロ - 便利なExcelマクロで効率アップ!
jcctairaの回答
- jcctaira
- ベストアンサー率58% (119/204)
Sub 分割処理() Dim I As Long Dim J As Long Dim 最終セル As Range Dim 分割 As Variant Dim 分割数 As Long Set 最終セル = Cells(Rows.Count, "A").End(xlUp) I = 1 Do While (I <= 最終セル.Row) 分割 = Split(Cells(I, "A"), ";") 分割数 = UBound(分割) For J = 0 To 分割数 If J <> 0 Then Cells(I + J, "A").EntireRow.Copy Cells(I + J, "A").EntireRow.Insert Shift:=xlDown End If If 分割数 <> 0 Then Cells(I + J, "A") = 分割(J) Next J I = I + 分割数 + 1 Loop Application.CutCopyMode = False End Sub 注)";"は全角か半角か分からなかったので、全角で作成しています。
関連するQ&A
- エクセルマクロ 特定の文字列を含む行を削除
エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行でAAA、CCCのいずれかがある場合、 その行ごと、すべて削除したいのです。 時に削除したい特定の文字列が数十種類になるため、 マクロ起動時に削除したい特定の文字を記述したファイルを読み込み、それから 削除できるようにしたいのです。場合によってはそのファイルを編集し、 削除したい文字列を変更したいのです。 ご教示いただだけないでしょうか A列 B列 C列 1 AAA BBB CCC 2 BBB CCC FFF 3 DDD BBB FFF 4 AAA CCC DDD 5 GGG RRR UUU 行中にAAA、BBBがある場合、削除したい ↓ A列 B列 C列 5 GGG RRR UUU マクロを実行し、上記の結果にしたい。
- ベストアンサー
- オフィス系ソフト
- 条件にあてはまる場合、行挿入+値を移動させるマクロ
Excel2003、WindowsXPを使用しています。 説明が分かり難いところがあるかもしれませんが、よろしくお願いいたします。 1.C列に値が入っていた場合、下に行を挿入。 2.挿入した行のB列に、C列に入っていた値を移動。 3.D列に値が入っていた場合、さらにその下に行を挿入。 4.挿入した行のB列に、D列に入っていた値を移動。 5.E列に値が入っていた場合、さらにその下に行を挿入。 6.挿入した行のB列に、E列に入っていた値を移動。 というように、C-E列に値が入っていた場合、下に行を挿入し、 挿入行にその値を移動させるマクロを教えてください。 (実行前) A列 B列 C列 D列 E列 F列 ああああ AAA BBB CCC DDD 12222 うううう EEE 544 くくく FFF GGG VVV 8 すす TTT BBB 4300 (実行後) A列 B列 C列 ああああ AAA 12222 ああああ BBB 12222 ああああ CCC 12222 ああああ DDD 12222 うううう EEE 544 くくく FFF 8 くくく GGG 8 くくく VVV 8 すす TTT 4300 すす BBB 4300 上記実行後のように、マクロで出来たら…と思っています。 どうぞよろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- 文字列を間引く方法
EXCEL関数、あるいはマクロで下記の処理ができないでしょうか。 1列 1行 T20339636 2行 T20379678 3行 T20340013 のように各セルに9桁の文字列が設定されています。 各文字列の2桁目から5桁目までを間引き、下記のように 設定する。 1列 1行 T9636 2行 T9678 3行 T0013 ご教授のほど、よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- <文字列マクロについて>
<文字列マクロについて> 皆さま お力を貸して下さい。 初心者で、何もわからず書いておりますがすみません。 下記の2つのマクロを教えて下さい。 ?横に並んだ「ある行」に在るデータを「列」に変換し、 指定した数だけ並べる あいうえお ←A1セルからE1まで5列(これは状況により変わる) ↓(マクロ実行:3行同じ数だけ並べるという指定) あ →A1セルから下にひたすら、同じ文字が続き順に並ぶ あ あ い い い う う →A1セルから下に並べる(3行は指定できれば別の数字にも変えたい う え え え お お お ?規則的に並んだデータのまとまりをセットで移動する。 例だと5つの塊(これは変数とおきたい) あ A a い B b う C c え D d お E e ↓(マクロ実行) あ い う え お A B C D E ・ ・ ・ ・ a b c d e
- 締切済み
- その他MS Office製品
- VBAマクロで結合セルを含む列に列挿入する方法?
お世話になっています。 下記のエクセルVBAマクロで、 列挿入処理をしているのですが、 列に結合セル(行方向)がある場合にだけ、 列選択がうまくできず、 目的と異なる処理をしてしまいます。 ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select Selection.Insert Shift:=xlToRight 新しいマクロの記録で やってみたのですが、 上記マクロが生成されただけでした。 手作業では 列の上のアルファベットを選択して、 列挿入できるので、 何かいい方法があるのは? と思います。 どなたかよろしくお願いします。
- ベストアンサー
- Visual Basic
- 列の挿入マクロ (エクセル)
例えば1行目から3行目のA1,A2,A3のセルが統合されていたとします。マクロボタンを作成してボタンを押すとa1の前(先頭の列)に1行挿入するように したいのですが、うまくできません。3行挿入されてしまいます。おそらくA1~A3のセルが統合されている為 。この現象が直る方法を教えて頂けないでしょうか?下記はそのソースです。 Rows("1:1").Select Range("B1").Activate Selection.Insert Shift:=xlDown
- ベストアンサー
- オフィス系ソフト
- エクセル 特定の文字列を抽出・挿入
例えば A列にあるセルの中から特定の文字列を検索・抽出して、その特定の文字列だけB列に挿入していく関数はありますか? またはA列にあるセルの中から特定の文字列に挟まれた文字列を検索・抽出してその特定の文字列だけB列に挿入していく関数はありますか? マクロを組まないと難しいのでしょうか?
- 締切済み
- オフィス系ソフト
- マクロ、セルの値から行挿入して転記する方法
エクセル2013です。 セルA1に 1,8,9,15 セルA2に 7,12 セルA3に 20,14,28 と入力されているとします。 For~Nextで回して セルA1のカンマの数を InStr関数で数えて カンマが3個だから その3を変数に入れて それを利用して A2から3行行挿入します。 で カンマで区切られた順に A1には1 A2には8 A3には9 A4には15 と転記させる カンマは消してしまう で、この時点で 元々セルA2だった所は セルA5になっていて 7,12 が入力されているはずです。 で同じくそこを見させて カンマが1個だから A5の下に1行挿入したうえで A5に7 A6に12 と転記 カンマは消す。 すると元々セルA3だった所は セルA7になっていて そこには20,14,28が入力されているはず ここも同じように処理し 下の列へ進めて行く。 カンマが無いセルは 行挿入せず この処理はしないで A列のデータが有る最終行まで 繰り返す。 と いうマクロを作成したいのですが どういう方法で行えばいいか うまく思いつきません。 配列は苦手でなのですが 配列を使わないと無理でしょうか? どうかよろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- エクセルマクロ、空白行(セル)の挿入
データがA、B、C、D、E列100行まであります。 このうちD、E列を除き、エクセルのマクロで1行ごとに空白で10行挿入したいです。 (A、B、C、D列のデータに空白セルを10行分挿入し、下にシフトするイメージ。D、E列はそのまま。) ご教授頂きたく、お願いします。
- 締切済み
- その他(Windows)
- A列の下2桁だけが連番でなかったら1行だけを挿入するマクロは?
基本は、A列の下2桁 ( 各連番が複数ずつあります ) だけが連番になっているんですが、 "たまに" 抜けている ( ない ) 時がありますので、 マクロ実行後に、連番が抜けている ( ない ) 場合に、そこに 「 1行だけ を挿入 」 して、 かつ その行のFS列 ( 175列目 ) まで ハイフン 「 - 」 を入力したいんです。 そして、必ずデータエリア数を 12 or 24 or 36 にしたいんです ( マクロ実行前は 36 を超えることはありません )。 連番が抜けている ( ない ) 場合、多くても 4・5つのデータエリア です。 3通り のマクロが必要のように思いますが、下記例の 1通り をどうかご教授下さいませ。 ---------------------------- **01 が 約10~19行 ( 変動します ) まであります ( これを エリア数1 と表現させて頂きます )。 そして、他の 「 **02 ~ **12 」 も同様です。これで 合計エリア数12 となります。 「 **01 ~ **12 」 は、必ず昇順になっています。 下記例は、 エリア数を 実行後 24 にしたい場合の例です ( この場合、実行前は 24 を越えることはありません )。 「 最初の **01 ~ **12 」 のうち 「 **02 」 と 「 **12 」 が抜けている ( ない ) 場合です。 実行前 ( エリア数22 です。「 **02 」 と 「 **12 」 が抜けている ( ない ) ) A列 **01 ・ **01 **03 ・ **03 ・ **11 ・ **11 **01 ・ **01 **02 ・ **12 **12 ↓↓↓ 実行後 ( 挿入した2行を エリア数2 としまして、 合計エリア数24 となります ) A列 B列 ・ ・ FS列 **01 ・ **01 - - ・ ・ - **03 ・ **03 ・ **11 ・ **11 - - ・ ・ - **01 ・ **01 **02 ・ **12 **12
- ベストアンサー
- オフィス系ソフト
お礼
お礼が遅くなり申し訳ありません。 皆様のおかげで無事処理が出来ました。 本当にありがとうございました。