
No.2ベストアンサー
- 回答日時:
こんな感じでしょうか?(フォームを扱えるとのことなので、必要な部分のみです。
)注)人名のリストの列番号がcolとします。また、nは、あらかじめmoji()に五十音の各行が入っているとして、その引数。
例:moji(1)="カキクケコ" (←半角カタカナとします:文字数は5でなくても可)
Set r = Cells(65536, col).End(xlUp).Offset(1, 0)
While r.Row > 1
Set r = r.Offset(-1, 0)
If (Not (IsNumeric(r.Value))) And (InStr(moji(n), Left(r.Value, 1)) > 0) Then
'****該当する場合の処理
End If
Wend
セルの下から順にサーチしていますが、上から順がよければループの順を逆にしてください。
****のところに該当する人名が見つかった時の処理をいれてください。
この回答への補足
fujillin さん御回答ありがとうございます。
fujillin さんのマクロを使わせていただき、ためしにアイウエオ行のみで人名リストを検索し、検索ヒットした人名の横の列に"HIT"の文字を表記する処理(下記のマクロ)を行ってみましたところ、成功いたしました。ありがとうございます。
☆fujillin さんのマクロをまだ完全に解読できていませんが^^;
→ If (Not (IsNumeric(r.Value))) And (InStr(moji, Left(r.Value, 1)) > 0) Then
の部分^^; 勉強いたします^^
↓走らせた処理です↓
******************************
Sub 人名検索()
Dim r As Range
Dim moji As Variant
Dim x As Integer
moji = "アイウエオ"
Set r = Cells(65536, 2).End(xlUp).Offset(1, 0)
While r.Row > 1
Set r = r.Offset(-1, 0)
x = r.Row
If (Not (IsNumeric(r.Value))) And (InStr(moji, Left(r.Value, 1)) > 0) Then
Cells(x, 3).Value = "HIT"
End If
Wend
End Sub
******************************
あとは、ユーザーフォームを使い、リストボックスの(ア行、カ行、サ行・・・)選択にて
選択した行にて人名検索を行えるようにするだけです。ユーザフォームは作成済みですので
あとすこしかな^^;
moji(1) = "アイウエオ"
moji(2) = "カキクケコ"
・
・
・
ですが、配列を使って代入していく方法がベターですか?
☆すみません配列未勉強ですので、いまから勉強いたします。
わかりにくい部分あればどうぞ御指摘ください。アドバイス頂ければ幸いです。
No.4
- 回答日時:
#2です。
補足です。If (Not (IsNumeric(r.Value))) And (InStr(moji, Left(r.Value, 1)) > 0) Then
Not (IsNumeric(r.Value))は「セルの値が数字でない場合(=文字)」で、
InStr(moj(n)i, Left(r.Value, 1))は「moji(n)の中にセルの1文字目があるか」を判定しています。
実質的には2番目の判定条件だけで良いのですが、セルの値が数字の場合、2番目の判定(文字関数)をする際にエラーが出てしまうので、1番目の条件もいれてエラーを避けています。
お役に立ててなによりです。頑張ってください。
配列の入力は文字コードを使ってループで定義するのもあるかもしれませんが、数がしれているので直接定義してしまったほうが簡単かも。
moji=Array("アイウエオ","カキクケコ","サシスセソ"・・・・・・)という手もありますよ。
fujillinさんありがとうございます^^
おかげ様でうまくいきました。
感謝しております^^丁寧な回答とアドバイス貴重なものでした。
初心者の私でも飲み込みやすく解りやすい解説でした。
本当にありがとうございました^^
No.3
- 回答日時:
>カタカナで表記された人名の頭文字が、ア行に該当する人名を別のワークシートに書き出すマクロを組みたいです。
⇒「ア行」を選択>ア・イ・ウ・エ・オから始まる人名を抽出。
⇒AdvancedFilter
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
⇒どこかのセルに「ア行」を選択した時に、ア*・イ*・ウ*・エ*・オ*
と代入するようにしておくとか。
An-junさん回答ありがとうございます。
dvancedFilterを使っても絞込みできそうですね^^
大変参考になります。
小生、この辺りも使い方も勉強しておく必要がありそうです^^
頭文字検索成功致しました。あとは細かい部分を固めていくのみです。
皆さんの御回答ありがたい^^
親切な対応ありがとう御座います^^
No.1
- 回答日時:
ア行とは何であるかExcelに教える必要があります。
「ア行」を選択>ア・イ・ウ・エ・オから始まる人名を抽出。
「カ行」・・・・・
「サ行」・・・・・
ではないでしょうか?
>ピックアップされるような
とは具体的にどうしたいのか不明。
Msgboxで表示する?シートに書き出す?その他?
この回答への補足
n-junさん回答ありがとうございます^^
本題です。
>ピックアップされるような
>とは具体的にどうしたいのか不明。
>Msgboxで表示する?シートに書き出す?その他?
質問に不備が有りました。すみません^^;
※ピックアップとはシートに書き出す処理を行いたいです。
また私の質問で、
>ア行を選択した場合、ワークシート上の人名リストの内、
>ア行に該当する人名がピックアップされるようなマクロを組みたいのですが、上手くいきません;;;
※この文章にも不備がありました。
カタカナで表記された人名の頭文字が、ア行に該当する人名を別のワークシートに書き出すマクロを組みたいです。
内容に不備がありすみません。
回答ありがとうございます^^
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
”戻り値”が変化したときに、マ...
-
VBA実行後に元のセルに戻りたい
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
Excel VBAで、 ヘッダーへのセ...
-
Excelのハイパーリンクにマクロ...
-
Google Apps Script:Googleスプ...
-
screenupdatingが機能しなくて...
-
DataGridViewで右寄せ左寄せが...
-
Book1のセルへ別Book(Book2)...
-
エクセルの参照先セルの選択に...
-
VBA ユーザーフォーム ボタンク...
-
エクセルVBAでできるでしょ...
-
Excelで指定した日付から過去の...
-
3桁または4桁の数値を時刻に...
-
EXCELで変数をペーストしたい
-
VB.NETで DataRow()を利用して...
-
VBAでActiveDirectoryのユーザ...
-
VBA B列にある前から10文字の...
-
リストビューに条件による表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
特定行の色を変えたい(FlexGrid)
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
Application.Matchで特定行の検索
-
”戻り値”が変化したときに、マ...
-
VBAでセルをクリックする回...
-
任意フォルダから画像をすべて...
-
Excel VBAで、 ヘッダーへのセ...
-
TODAY()で設定したセルの日付...
-
【Excel VBA】指定行以降をクリ...
-
Excel vbaで特定の文字以外が入...
-
ExcelのVBAで数字と文字列をマ...
-
Excel VBA、 別ブックの最終行...
-
DataGridViewの各セル幅を自由...
-
VBA ユーザーフォーム ボタンク...
-
連続する複数のセル値がすべて0...
おすすめ情報