- 締切済み
エクセルで少し困っています。
失礼します。 エクセル初心者です。 名前をランダムに表示したいと思い調べてみたのですが、 わからずここへ来ました。 少し困っております。 下記(例)のようにしたいんですが、 ひらがなチームを選択するとひらがなのチームの方がランダムで選択され、 英数字チームを選択すると英数字のチームの方がランダムで選択される。 というようなことをエクセルで出来ますでしょうか? エクセル2007です。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kuma56
- ベストアンサー率31% (1423/4527)
>というようなことをエクセルで出来ますでしょうか? ・・・・とりあえず、出来、、、みたい。。。。。 エクセルはそれほど詳しくないけど、とりあえず下記のマクロを張り付けてやれば、それなりの動きをしそうです。 ワークシート下側のシートの見出しをマウスで右クリックして"コードの表示"で表示されるエリアに下記のマクロを貼り付けてください。 条件 A1セルに、"ひらがな"か"アルファベット"を入力する (ツール→入力規制→リスト、でどちらかを選ぶ様にしておくといいかも) D1~D15セルにひらがなのチーム名を入力 E1~E15セルにアルファベットのチーム名を入力 B1セルにチーム名が張り付く ***ここ↓から切り取る*** Private Sub Worksheet_Change(ByVal Target As Range) Randomize '乱数を発生させる Min = 0 '最小値を 0 Max = 14 '最大値を 14 VAL01 = Int((Max - Min + 1) * Rnd() + Min) ' Range("B1").Select If Target = Range("A1") And Target = "ひらがな" Then '条件設定 A1セルが ひらがな ならば ActiveCell.Offset(VAL01, 2).Range("A1").Select '下へ vAL01 の設定値まで 右へ2コマ移動 Selection.Copy 'コピーを取る Range("B1").Select 'B1セルを選択 ActiveSheet.Paste '張付ける ElseIf Target = Range("A1") And Target = "アルファベット" Then '次の条件 A1セルが アルファベット ならば・・・・ ActiveCell.Offset(VAL01, 3).Range("A1").Select '下へ VAL01 の設定値まで 右へ3コマ移動 Selection.Copy 'コピーを取る Range("B1").Select 'B1セルを選択 ActiveSheet.Paste '張付ける End If Application.CutCopyMode = False End Sub ***ここ↑まで*** マクロを使わず、関数式で何とかする方法もあるかも知れませんが、その辺はよく判りません。 また上記のマクロも、このサイトの過去ログやWEB検索した物の切り貼りに近いので、もっときちんとした記述の仕方が有るのかも知れませんし、もっと簡単な方法もあるかもしれません。
- DIooggooID
- ベストアンサー率27% (1730/6405)
表示したい名前の候補一覧が、別に登録されていて、 その中から選択したグループに属する候補を、無差別に表示したいということでしょうか?
チーム名を対象に並べ替えをすると、チーム名の最初の字によりひらかな、英字、漢字がそれぞれまとめて示されると思います。
お礼
optimumsoupさん ありがとうございます。 是非やってみます。
補足
DIooggooIDさん ありがとうございます。 表示したい名前の候補一覧が、別に登録されていて、 その中から選択したグループに属する候補を、無差別に表示したいということでしょうか? >>はい。そうです。