コンボボックスで頭文字一致で入力候補を表示するには?

Question 97.5 Excel VBA Borad (掲示板)より Previous Next
こんにちは。 いつもこちらのHPを参考にさせて頂き助かっております。
不動産管理会社に勤めているものなのですが、書類作成で皆様のお力をお貸しください。お願いします。
コンボボックスで1文字目一致で入力候補を表示するには」を参考にさせて頂いておおよそ希望するものが出来上がったのですが、1つ困り事が・・・
建物の物件名を検索させるように作ったのですが最初の1文字目がカタカナ・アルファベット・漢字がバラバラの為やり方が分からず困ってしまいました。
全ての物件名にヨミガナとしてカタカナを入力した行を作りそれを参照し(ヨミガナではない)、入力候補を表示させる方法をお教えください。
アルファベットの物件名は人によってはカタカナで入力する為、お知恵をお貸し下さい。お願いします。
Answer   2009.8.6 永井善王
コンボボックスで1文字目一致で入力候補を表示するには」が参考になったようで嬉しいです。
「ヨミガナ」を頭文字と解釈した場合のサンプルを作っておきました。
あまり時間が取れないのでパーフェクトなものではありませんが、タタキ台になれば幸いです。

1. 上記ページから「YNxv98314_ComboBox.xls」をダウンロードし、下図のように改良する
名簿シート UserForm1

 2. そのブックの UserForm1のコードを下記のとおりに差し替える
 3. そのブックの 「SSS」シートにあるボタンをクリックする
 4. 一部改良後の「UserForm1」が表示されたら、「い」と入力する (下図)
ユーザーフォーム
5. 右図のようにドロップダウン矢印(▼)をクリックして、表示されたリスト
  から「Iina館」をクリックしてみる
6. するとメッセージボックスに、選択された物件名が表示される


'=================================================
Option Explicit
Dim リスト配列() As Variant 'コンボボックス用の動的配列変数
Dim 名簿件数, 行
'------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
    名簿件数 = 11
    ReDim リスト配列(名簿件数, 1)               '動的配列変数にメモリ領域の再割り当て
    For 行 = 1 To 名簿件数
        リスト配列(行 - 1, 0) = Worksheets("名簿").Cells(行 + 1, 1).Value
                                                '名簿シートのA列
        リスト配列(行 - 1, 1) = Worksheets("名簿").Cells(行 + 1, 2).Value
                                                '同B列
    Next
    With ComboBox1                              'コンボボックスについて
        .ColumnCount = 2                        '表示列数の設定
        .TextColumn = 1                         '表示列の設定
        .List() = リスト配列()                  'リストを設定
        .MatchEntry = fmMatchEntryFirstLetter
                                        '入力した文字と1文字目が一致する候補を検索
    End With
End Sub
'------------------------------------------------------------------------------
Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex = -1 Then
        MsgBox "みつかりません。", vbExclamation
        Exit Sub
    End If
    Label2.Caption = リスト配列(ComboBox1.ListIndex, 1) '候補を表示する
End Sub
'------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
    If ComboBox1.MatchFound Then                '一致する項目がリストの中にあれば
        MsgBox Label2.Caption                   '選択結果を取り出す
    Else
        MsgBox "中止します。", vbExclamation
    End If
    Unload Me                                   'ユーザーフォームを閉じる
End Sub
'==============================================================================
' すぐに役立つエクセルVBAマクロ集                   Copyright(c)2009 Yoshioh Nagai
'==============================================================================
ありがとうございました
1から10まで聞いていては失礼だし自分の為にならないと思い、いろいろエラー・コード変更で悩みつつも何とか完成できました。
また勉強していき解らない"壁"にぶつかったらご教授願います。 誠に有難う御座いました。。。

Excel VBA Macro