• 締切済み

名簿の行の挿入

名簿をアイウエオ順に並び変えるマクロで並び替えましたが、ア行カ行とかアカサタナの間に行を挿入したいのですが名簿名が増えると行がランダムになるので行を挿入できるマクロを教えてください。

みんなの回答

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

#02です。補足の回答がないのですが、適当に想像してマクロを書きました。不都合な点があれば、自由に修正してください。 条件は  ・A列でデータ有無を判断する  ・A列に並べ替えする氏名がある(A列でないときはマクロ中の2行を手直しする。修正箇所はマクロ中に記述)  ・名簿は氏名で並べ替えされている  ・空白行は一旦削除してから、再度カナ行の切れ目に空白行を挿入する です Sub Macro1() Dim curStr, upStr As String Dim idx As Long, ar  ar = Array("ア", "カ", "サ", "タ", "ナ", "ハ", "マ", "ヤ", "ラ", "ワ")  With ActiveSheet   For idx = .Range("A65536").End(xlUp).Row To 2 Step -1    If Application.CountA(.Rows(idx)) = 0 Then     .Rows(idx).Delete    End If   Next idx   For idx = .Range("A65536").End(xlUp).Row To 2 Step -1    curStr = Left(Application.Phonetic(.Cells(idx, "A")), 1) '氏名の列を修正 "A"→?    upStr = Left(Application.Phonetic(.Cells(idx - 1, "A")), 1) '氏名の列を修正 "A"→?    If Application.Match(curStr, ar, 1) <> Application.Match(upStr, ar, 1) Then     .Rows(idx).Insert shift:=xlDown    End If   Next idx  End With End Sub 私が評価したデータは以下の通りです。 A列 浅田みよこ (1行目) 伊藤弘   (2行目) 江藤太郎 奥田浩二 加藤元気 児玉清 佐藤英二 須藤清美 高橋弘樹 テヅカオサミ

hiro31qq
質問者

お礼

ありがとうございました。質問が明確でなくて申し訳ございませんでした。質問の詳細は、エクセルでの部署毎の名簿をあいうえお順に作り変える時にあかさたな行に空欄の行を入れるのマクロで部署毎の名簿は入退社で人数が変わるので、指定した行挿入は出来なかったので質問しました。この回答で解決しましたのでありがとうございました。

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

ソフトはエクセルでしょうか? 並び替えはカナ氏名の列で行っていますか? それとも漢字氏名の列でふりがなを使用して並べ替えを行っていますか? それによりマクロが変わります

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

すみません、これはExcelの話ですか?それならOfficeカテゴリの方がよいと思いますが、まず何のアプリについての質問かくらいは明記していただかないと、回答がつきにくいかと思います。 それで、質問内容もよくわからないのですが、 > 名簿をアイウエオ順に並び変えるマクロで並び替えました 並び替えるマクロはあるわけですよね。 > ア行カ行とかアカサタナの間に行を挿入したいのですが ここの意味がよくわかりません。アイウエオ順に名前が並んでいるのですよね。 明石家さんま 明智光秀 織田信長 加藤茶 菊川怜  :  : とか並んでいる名簿に ア行 ← この行を挿入 明石家さんま 明智光秀 織田信長 カ行 ← この行を挿入 加藤茶 菊川怜  :  : というようにしたい、ということなのでしょうか。 それなら、手でア行、カ行…を挿入していけばいいだけのような気がするのですが。 マクロで並び替えたら、「ア行」までアイウエオ順で並び替えられるので、 明石家さんま ア行 明智光秀  : と並びが変になってしまう、ということなのでしょうか。 そうだとして、もしマクロでの並び順に名前のフリガナを使っているのであれば、 「書式」>「ふりがな」>「設定」で、 「ア行」のフリガナを「ああああ」に、 「カ行」のフリガナを「かあああ」に、 「サ行」のフリガナを「さあああ」に、     :     : としておけば、それらの行がそれぞれの行の一番上に来ると思います。 かなりの部分を想像で書いているので、意図したことと全く違ったらすみません。

hiro31qq
質問者

お礼

回答ありがとうございました。質問が明確でなくて申し訳ございませんでした。質問の詳細は、エクセルでの部署毎の名簿をあいうえお順に作り変える時にあかさたな行に空欄の行を入れるのマクロで部署毎の名簿は入退社で人数が変わるので、指定した行挿入は出来なかったので質問しました。解決しましたので質問のご指導ありがとうございました。

関連するQ&A

  • エクセルで名簿を50音で切り分ける

    一つのシートに名簿があります。 半角カタカナでフリガナデータを持っていますが、 ア行で始まる人のシート、 カ行で始まる人のシート、・・・・ という様に切り分けたいのですが・・・ そういう事ってマクロで可能ですか とりあえず、ア行は1、カ行は2、と関数でコーディングしておき、1の範囲を新規シートにコピー、2の範囲を・・・とやっていけばいいのかなぁ・・・などとおぼろげに考えていますが・・・ ただ、現実に自分でマクロを組むことが出来ないので・・・ どうすればよいか教えていただければ幸いです。

  • エクセルのシートを同時に行削除、行挿入させて自動連動させたい

    エクセルで、横(列)256列以上のデータを入力したいため、シートを分けざるをえません。その場合、次のようなことがしたいとき、どのようにすればよろしいでしょうか?(やりたいことの結論下記(3)になります。) エクセルのシートが2つ以上あるとします。 (1)「sheet1」には、基本データ(名簿録のようなもの・氏名ふりがなアイウエオ順配列) (2)ふたつめ以降のシートには、毎月変更するデータを入力し、「sheet1」の名簿の個々のIDに対応したそれぞれ同じ行番号に入力することになります。 (3)「sheet1」で行削除(名簿対象者解約)や行挿入(新規契約者)を任意の場所で行いたい。それに連動して、2つ目以降のシートでも同じ列で行削除・行挿入を自動でしたい。 ★この簡易システムを作成するのはマクロ初心者の私であり、日々の入力作業するのはエクセルそのものが初心者である他者となります。 ★行挿入、行削除のときだけシートの同時選択を手作業でしてもらうことは想定していません。そのあたりをも含めた自動化の智恵がでてこないのです。 以上、よろしくお願いします。

  • Excelでの行の挿入について

    マクロについて教えて下さい。 例えばA1のセルに5と入力した場合に 3行目と4行目の間に5行挿入したいのですが・・・ マクロでなくても出来る方法があればそちらも教えて頂ければ幸いです。

  • 「新しいマクロの記録」機能を使っての行挿入

    「新しいマクロの記録」機能を使って1行と2行の間に10行の空白行を挿入後、A13のセルを選択というマクロを作りました(マクロ1とします)。このマクロを実行すると1行と2行の間に10行の空白行が挿入された後、A13が選択されます。ここでもう一度、マクロ1を実行すると1行と12行の間にさらに空白行が10行挿入されA13が選択されます。このようになるのは当たり前と言えば当たり前なのですが、2回目にマクロを実行したときに12行と13行の間に10行の空白行が挿入された後、A24が選択されるようにするには、どのようにマクロを記録すればよいのでしょうか?  ようは、10行の空白行を挿入した後、セルを11行下に移動させるというマクロを作りたいのです。VBAの記述方法はほとんど分からないので「新しいマクロの記録」機能を使うことを前提にご教授ください。

  • 筆王について

    筆王というソフトで年賀状を作成しようとしているのですが、Outlook Expressのアドレス帳からデータを読み込ませて人名のアイウエオ順に、つまりあ行・か行…という具合にデータが収まるかと思っていたのですが、そうではなく、「全部」という項目に保存されてしまいます。こうなったデータを、各行の項目に振り分ける(例えば安藤という人をあ行に移行し、金沢という人をか行に移行する)にはどうしたらよいのでしょうか?どなたか教えて下さい。

  • 行をつき合わせ自動挿入

    1ファイル数万件のデータを3ファイル各々あります。 同じデータは同じ場所へ置きたいので、昇降順でまずは大体の場所へ。 そこからです。 もし、同じものがない場合には例えばA列の文字を挿入しつつ1行挿入をかけたいのですが、件数が多いのでマクロなどで対応できないでしょうか。

  • ユーザーフォームから行検索後、データ挿入の仕方について

    エクセルでの名簿作成時に関する質問です。 現在エクセルで名簿を作成する際に、ユーザーフォームを使って入力しています。 データは、まず一番上の行に「A1~G1」までの(1人につき)7項目挿入され、 その後、全体を「A列」の氏名順に並び替えるという作業をしています。 「登録」ボタンと、「並び替え」ボタンを押さねばならず、 2度手間のような気がしてなりません。 ちなみに、名簿自体はローマ字名順(a.b.c.~z)に並べています。 ユーザーフォームのテキストエリアに記入し、「登録」ボタンを押すだけで、 既存の名簿から該当のローマ字を検索して探し出し、 その下に行の挿入・登録されるような機能はないのでしょうか? 例えば、「佐藤さん(sato)」のデータをユーザーフォームから入れる際に 「登録」ボタンを押すと・・・ ---------------------------------------------------- 【名簿】   ******   ←ここではなく・・・   abe  ・  ・  oda    sasaki  ******   ←【sat*】を検索して直接ここに登録したいのです。  seki ---------------------------------------------------- マクロを始めたばかりでよく理解していない事が多いのですが、 何か良い方法がありましたら、アドバイスをお願い致します。

  • マクロで行挿入がうまくいかない理由は?

    XPでOFFICE2007です。マクロ未熟者です。 マクロで、行挿入だけであればうまくいきますが、行挿入した後でその行に文字を入力するマクロでは、その行ではなく1行前のセルに文字が入力されてしまいます。 変なことになるのは、マクロを作成する過程で、行挿入が上の書式をコピーすることと関連がありそうなのですが、何に注意すればうまくいくのでしょう。 とりあえず今のところは行挿入を使わずに上の行をコピーして挿入する方法でうまくいっています。しかし行挿入後の文字入力がうまくいかないのか、その理由と対処方法がわかれば教えてください

  • エクセル 行と列の入れ替え方法

    エクセルの使い方で質問です。 -例1- 行1にア行 行2にカ行 行3にサ行 のデータがあります。 現在この例1のデータは横方向(列方向)に伸びています。 これを縦方向(行方向)に伸びる形例2に並び替えたいと思います。 -例2- 列A  列B  列C ア行 カ行 サ行 どのように行えばいいのでしょうか。 アドバイスの程よろしくお願いします。

  • エクセル行の挿入

    excelに行を追加する方法を教えてください! Bにある数からマイナス1行下に挿入したいのです。 1→挿入なし  2→下に1行挿入  3→下に2行挿入 数よりマイナス1行の挿入をしたいのですが、 マクロ、関数など全く分かりません。 以前の質問も見てみたのですが、見当たらないのと、 マクロ?が全くわからないので、 どなたか一から教えていただけないでしょうか? 本当に申し訳ないのですが、お願いします。 Aにkkkk Bに数が入ります。   A | B | C | D ------------------------------------- 1| kkkk   2 ------------------------------------- 2| kkkk   1 ------------------------------------- 3| kkikk   3 ------------------------------------- 4| kkkk   2 ↓行の挿入   A | B | C | D ------------------------------------- 1| kkkk   2 ------------------------------------- 2| kkkk   空白(行の挿入) ------------------------------------- 3| kkikk   1 ------------------------------------- 4| kkkk   3 ------------------------------------- 5| kkkk   空白(行の挿入) ------------------------------------- 6| kkkk   空白(行の挿入) ------------------------------------- 7| kkkk   2 ------------------------------------- 8| kkkk   空白(行の挿入) -------------------------------------