人に聞けない痔の悩み、これでスッキリ >>

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

このQ&Aに関連する最新のQ&A

A 回答 (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行目)
江藤太郎
奥田浩二
加藤元気
児玉清
佐藤英二
須藤清美
高橋弘樹
テヅカオサミ
    • good
    • 1
この回答へのお礼

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

お礼日時:2007/03/18 12:18

ソフトはエクセルでしょうか?



並び替えはカナ氏名の列で行っていますか?
それとも漢字氏名の列でふりがなを使用して並べ替えを行っていますか?

それによりマクロが変わります
    • good
    • 0

すみません、これはExcelの話ですか?それならOfficeカテゴリの方がよいと思いますが、まず何のアプリについての質問かくらいは明記していただかないと、回答がつきにくいかと思います。



それで、質問内容もよくわからないのですが、

> 名簿をアイウエオ順に並び変えるマクロで並び替えました

並び替えるマクロはあるわけですよね。

> ア行カ行とかアカサタナの間に行を挿入したいのですが

ここの意味がよくわかりません。アイウエオ順に名前が並んでいるのですよね。

明石家さんま
明智光秀
織田信長
加藤茶
菊川怜
 :
 :
とか並んでいる名簿に

ア行 ← この行を挿入
明石家さんま
明智光秀
織田信長
カ行 ← この行を挿入
加藤茶
菊川怜
 :
 :
というようにしたい、ということなのでしょうか。
それなら、手でア行、カ行…を挿入していけばいいだけのような気がするのですが。

マクロで並び替えたら、「ア行」までアイウエオ順で並び替えられるので、

明石家さんま
ア行
明智光秀
 :

と並びが変になってしまう、ということなのでしょうか。

そうだとして、もしマクロでの並び順に名前のフリガナを使っているのであれば、
「書式」>「ふりがな」>「設定」で、
「ア行」のフリガナを「ああああ」に、
「カ行」のフリガナを「かあああ」に、
「サ行」のフリガナを「さあああ」に、
    :
    :
としておけば、それらの行がそれぞれの行の一番上に来ると思います。

かなりの部分を想像で書いているので、意図したことと全く違ったらすみません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/03/18 12:48

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで名簿をあいうえお順に並べ替える方法。

タイトル通りなのですが、エクセルで名簿をあいうえお順に並べ替える方法を教えて下さい。
きっと単純な事なのでしょうが、分からなくて困ってます。
宜しくお願いします。

Aベストアンサー

 名簿の氏名をキーにして50音順に並べたいということだと思いますが、残念ながらフリガナが入力されてなければ漢字の氏名だけで正しい並べ替えは出来ません。
 
 いくらExcelのバージョンが新しくても漢字には音読みと訓読みがあり、漢字でソートするとほとんど音読みで並べます。
 だから例えば安永は「あんえい」に吉田は「きちでん」と読んで並べます。日本名の大半は訓読みですから期待する結果はほとんど得られません。

 ただし一つだけ試して欲しいのは、氏名の列の右にとりあえず1列挿入し、仮に氏名セルのトップがA2だとするとB2に次の式を入力して下方にコピーしてみてください。
=PHONETIC(A2)
 もし氏名を入力するとき読みどおり入力してあればその読みがB2に出るはずです。
 ダメもとでやってみる価値はあると思います。
 駄目なときはフリガナを入力してソートするしかないでしょうね。


人気Q&Aランキング