関数は自分で作る

並び替えは漢字のふりがな順

「ふりがなが」バックにあるのね。

並べ替えは、漢字でもあいうえお順に並ぶね。

並べ替えは、漢字でもあいうえお順に並ぶね。昔はアスキーコード順といって文字コード順だった。Excelは見えないがバックでふりがな使ってる。

名簿の名前の入力の場合、空白文字が前後にあったり、名字の後に空白文字が2つや、ひらがなをカタカナ入力、半角のカタカナなど。また、渡辺、 渡部 、渡邉など同じふりがなだが入力間違い。この対処は、ふりがなで並べ替えて住所などの他の列で判断するしかない。

  1. 空白文字を取り除く。ワークシート関数のTRIM(トリム)
  2. ふりがなを確認する:ワークシート関数のPHONETIC( フォネティック )
  3. ふりがなの情報がない場合の登録:マクロ記録で調べる

ActiveCell.SetPhoneticでふりがな登録できます。SetがあったらGetがあるでしょう。GetPhoneticはApplicationにあるということは、 SetPhonetic での読みに関してはアプリ/Excelが持っている辞書で「よみがな」が入るということです。以下は、イミディエイトウィンドウで入力。?から始まる行は入力。その下は出力。

?application.GetPhonetic("英語")
エイゴ

会社のデータベースからデータを取って来る場合は、拡張子がCSVやTXTでしょう。CSVはそのままExcelで読んでもきっちりセルに割り当てますが、TXTの方は 文字列の区切りを指定するウィザードが起動するかもしれません。

動画のデータ作成用マクロ。

Sub 表作成()

       Range("A1").Select
    ActiveCell.FormulaR1C1 = "番号"
    ActiveCell.Characters(1, 2).PhoneticCharacters = "バンゴウ"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "名前"
    ActiveCell.Characters(1, 2).PhoneticCharacters = "ナマエ"
    Range("c1").Select
    ActiveCell.FormulaR1C1 = "説明"
    ActiveCell.Characters(1, 2).PhoneticCharacters = "セツメイ"
    
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A14"), Type:=xlFillSeries
    Range("A2:A14").Select

    Range("B2").Select

    ActiveCell.FormulaR1C1 = "前田  あきこ"
    ActiveCell.Characters(1, 2).PhoneticCharacters = "マエダ"
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "前田 あきこ "
    ActiveCell.Characters(1, 2).PhoneticCharacters = "マエダ"
    Range("B4").Select
    ActiveCell.FormulaR1C1 = "前田アキコ"
    ActiveCell.Characters(1, 2).PhoneticCharacters = "マエダ"
    Range("C4").Select
    ActiveCell.FormulaR1C1 = "←空白文字なしでカタカナ"
    ActiveCell.Characters(2, 4).PhoneticCharacters = "クウハクモジ"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "←全角空白文字2つ"
    Range("C3").Select
    ActiveCell.FormulaR1C1 = "←半角角空白文字"
    Range("B5").Select
    ActiveCell.FormulaR1C1 = "前田あきこ"
    ActiveCell.Characters(1, 2).PhoneticCharacters = "マエダ"
    Range("C5").Select
    ActiveCell.FormulaR1C1 = "←空白文字なし"
    ActiveCell.Characters(2, 4).PhoneticCharacters = "クウ"
    Range("B6").Select
    ActiveCell.FormulaR1C1 = "前田 あきこ "
    ActiveCell.Characters(1, 2).PhoneticCharacters = "マエダ"
    Range("B7").Select
    ActiveCell.FormulaR1C1 = "前田アキコ"
    ActiveCell.Characters(1, 2).PhoneticCharacters = "マエダ"
    Range("B8").Select
    ActiveCell.FormulaR1C1 = "前田 あきこ "
    ActiveCell.Characters(1, 2).PhoneticCharacters = "マエダ"
    Range("C5").Select
    ActiveCell.FormulaR1C1 = "←空白文字なし"
    ActiveCell.Characters(2, 4).PhoneticCharacters = "クウ"
    Range("C6").Select
    ActiveCell.FormulaR1C1 = "←先頭最後に空白"
    Range("C7").Select
    ActiveCell.FormulaR1C1 = "←名前が半角カタカナ"
    ActiveCell.Characters(2, 2).PhoneticCharacters = "ナマエ"
    ActiveCell.Characters(5, 2).PhoneticCharacters = "ハンカク"
    Range("C8").Select
    ActiveCell.FormulaR1C1 = "←全角空白文字、最後にも空白文字"
    ActiveCell.Characters(2, 2).PhoneticCharacters = "ゼンカク"
    ActiveCell.Characters(4, 2).PhoneticCharacters = "クウハク"
    ActiveCell.Characters(6, 2).PhoneticCharacters = "モジ"
    Range("B9").Select
    ActiveCell.FormulaR1C1 = "吉田裕子"
    ActiveCell.Characters(1, 4).PhoneticCharacters = "ヨシダユウコ"
    Range("B10").Select
    ActiveCell.FormulaR1C1 = "吉田 裕子"
    ActiveCell.Characters(1, 2).PhoneticCharacters = "ヨシダ"
    ActiveCell.Characters(4, 2).PhoneticCharacters = "ユウコ"
    Range("B11").Select
    ActiveCell.FormulaR1C1 = " 吉田 裕子"
    ActiveCell.Characters(2, 2).PhoneticCharacters = "ヨシダ"
    ActiveCell.Characters(5, 2).PhoneticCharacters = "ユウコ"
    Range("C11").Select
    ActiveCell.FormulaR1C1 = "←先頭に空白文字"
    ActiveCell.Characters(2, 2).PhoneticCharacters = "セントウ"
    ActiveCell.Characters(5, 4).PhoneticCharacters = "クウハクモジ"
    Range("B12").Select
    ActiveCell.FormulaR1C1 = "渡部 真一"
    ActiveCell.Characters(1, 2).PhoneticCharacters = "ワタナベ"
    ActiveCell.Characters(4, 2).PhoneticCharacters = "シンイチ"
    Range("B13").Select
    ActiveCell.FormulaR1C1 = "渡辺真一"
    ActiveCell.Characters(1, 2).PhoneticCharacters = "ワタナベ"
    ActiveCell.Characters(3, 2).PhoneticCharacters = "シンイチ"
    Range("B14").Select
    ActiveCell.FormulaR1C1 = "綿鍋真一"
    ActiveCell.Characters(1, 2).PhoneticCharacters = "ワタナベ"
    ActiveCell.Characters(3, 2).PhoneticCharacters = "シンイチ"
    Range("C11").Select
    ActiveCell.FormulaR1C1 = "←先頭に空白文字"
    ActiveCell.Characters(2, 2).PhoneticCharacters = "セントウ"
    ActiveCell.Characters(5, 4).PhoneticCharacters = "クウハクモジ"
    Range("C13").Select
    ActiveCell.FormulaR1C1 = "←上と名前は同じ?"
    ActiveCell.Characters(2, 1).PhoneticCharacters = "ウエ"
    ActiveCell.Characters(4, 2).PhoneticCharacters = "ナマエ"
    ActiveCell.Characters(7, 1).PhoneticCharacters = "オナ"
    Range("C14").Select
    ActiveCell.FormulaR1C1 = "←漢字変換間違い"
    ActiveCell.Characters(2, 4).PhoneticCharacters = "カンジヘンカン"
    ActiveCell.Characters(6, 2).PhoneticCharacters = "マチガ"
    Range("A2").Select
    Application.CutCopyMode = False
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$c$14"), , xlYes).Name = _
        "テーブル"
 
    Columns("B:B").EntireColumn.AutoFit
    Columns("A:A").EntireColumn.AutoFit
    Columns("c:c").EntireColumn.AutoFit
End Sub
モバイルバージョンを終了