名簿の行の挿入
名簿をアイウエオ順に並び変えるマクロで並び替えましたが、ア行カ行とかアカサタナの間に行を挿入したいのですが名簿名が増えると行がランダムになるので行を挿入できるマクロを教えてください。
#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行目)
江藤太郎
奥田浩二
加藤元気
児玉清
佐藤英二
須藤清美
高橋弘樹
テヅカオサミ
この回答へのお礼
ありがとうございました。質問が明確でなくて申し訳ございませんでした。質問の詳細は、エクセルでの部署毎の名簿をあいうえお順に作り変える時にあかさたな行に空欄の行を入れるのマクロで部署毎の名簿は入退社で人数が変わるので、指定した行挿入は出来なかったので質問しました。この回答で解決しましたのでありがとうございました。
すみません、これはExcelの話ですか?それならOfficeカテゴリの方がよいと思いますが、まず何のアプリについての質問かくらいは明記していただかないと、回答がつきにくいかと思います。
それで、質問内容もよくわからないのですが、
> 名簿をアイウエオ順に並び変えるマクロで並び替えました
並び替えるマクロはあるわけですよね。
> ア行カ行とかアカサタナの間に行を挿入したいのですが
ここの意味がよくわかりません。アイウエオ順に名前が並んでいるのですよね。
明石家さんま
明智光秀
織田信長
加藤茶
菊川怜
:
:
とか並んでいる名簿に
ア行 ← この行を挿入
明石家さんま
明智光秀
織田信長
カ行 ← この行を挿入
加藤茶
菊川怜
:
:
というようにしたい、ということなのでしょうか。
それなら、手でア行、カ行…を挿入していけばいいだけのような気がするのですが。
マクロで並び替えたら、「ア行」までアイウエオ順で並び替えられるので、
明石家さんま
ア行
明智光秀
:
と並びが変になってしまう、ということなのでしょうか。
そうだとして、もしマクロでの並び順に名前のフリガナを使っているのであれば、
「書式」>「ふりがな」>「設定」で、
「ア行」のフリガナを「ああああ」に、
「カ行」のフリガナを「かあああ」に、
「サ行」のフリガナを「さあああ」に、
:
:
としておけば、それらの行がそれぞれの行の一番上に来ると思います。
かなりの部分を想像で書いているので、意図したことと全く違ったらすみません。
この回答へのお礼
回答ありがとうございました。質問が明確でなくて申し訳ございませんでした。質問の詳細は、エクセルでの部署毎の名簿をあいうえお順に作り変える時にあかさたな行に空欄の行を入れるのマクロで部署毎の名簿は入退社で人数が変わるので、指定した行挿入は出来なかったので質問しました。解決しましたので質問のご指導ありがとうございました。
- 最新から表示
- |
- 回答順に表示












