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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Visual Basic(VBA) 【至急】 当方初心者です。 マクロについて知恵をお貸しください。 ★したい動作 ①リストE列2行目か 4 2022/09/29 18:56
- Excel(エクセル) Excelについて質問です。 シート1の検索値例えば *ABC* をシート2.3.4から検索して、シ 5 2023/02/17 23:30
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】指定行以降をクリ...
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定のセルが空白だったら、そ...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
TODAY()で設定したセルの日付...
-
エクセルVBAでコピーして順...
-
VBからEXCELのセルの値を取得す...
-
EXCELのVBA-フィルタ抽出後の...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
特定行の色を変えたい(FlexGrid)
-
VBAでセルに値が入ったときにイ...
-
エクセルvba:自己セルの情報取...
-
VBA初心者です。結合セルを保持...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
指定した条件で行セルを非表示...
-
Excel VBA マクロ ある列の最終...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
VBAの計算で@が出てしまう件
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
VBA ユーザーフォーム ボタンク...
-
VBAでセルをクリックする回...
-
Excel VBA、 別ブックの最終行...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
-
VBAを使用した時間管理
-
”戻り値”が変化したときに、マ...
-
Sub 要具ライフ() ActiveSheet....
おすすめ情報