みなさん、こんにちはケンケンです。
今回は、RANDBETWEEN関数を使ってパスワードを作ってみます。
セキュリティ上の安全性を高めるために、数字とアルファベットを含めた文字から選択できるようにし、さらに8桁分を作ります。
前回の復習はこちらを参照してください。
RANDBETWEEN関数の使い方
さて、前回お話ししたRAND関数を使った4桁のパスワードを生成する方法は、
実はRANDBETWEEN関数で一発でできてしまいます。
RANDBETWEEN関数の書式
RANDBETWEEN(最小値, 最大値)
最小値から最大値までの数値の間で乱数を発生させます。最小値と最大値は必ず指定します。
RANDBETWEEN関数の基礎
では、以下のようにA2セルに数式「=RANDBETWEEN(1,9999)」を入力してください。
簡単に乱数が発生しました。
これを前回と同じくTEXT関数で成形してセルをコピーしましょう。
数式はこちら→「=TEXT(RANDBETWEEN(1,9999),”0000″)」
これで1桁目も0が入りますね。
数字のみのパスワードで1桁目に0を代入する方法は以上となります。
RANDBETWEEN関数で数字以外をランダムで選択する方法
RAND関数もそうでしたが、あくまでこの系統の関数は結果として数字を返します。
では、数字以外の文字列を返すにはどうしたら良いでしょうか。
以下の手順を経ると数字以外の文字を抽出することが出来るようになります。
- 文字列を用意する
- その文字列の文字数を数える
- MID関数とRANDBETWEEN関数を組み合わせて文字を取り出す
まず、1の文字列は「あかさたなはまやらわ」を使います。
次に2の文字数を調べるにはLEN関数を使います。
LEN関数の書式
LEN(文字列)
文字列の文字数をカウントしてくれます。
LEN関数を使ってみよう
先ほど用意した文字列をLEN関数を使って数えてみましょう。
A1セルに文字列を用意し、A2セルに「=LEN(A1)」と入力します。
MID関数とRANDBETWEEN関数を組み合わせて文字を取り出す
MID関数とRANDBETWEEN関数を組み合わせると文字列からランダムで文字を取り出せます。
まずMID関数について解説します。
MID関数の書式
MID(文字列, 開始位置, 文字数)
対象の文字列から開始位置を指定し、取り出したい文字数分だけ抽出します。
※VBAを使える方はこちらも参考にしてください。
先ほどの例を使って確認してみましょう。
文字列「あかさたなはまやらわ」で3文字目から2文字分抽出します。
数式は「=MID($A$1,3,2)」となります。
A1の部分は絶対参照にしておきましょう。
絶対参照についてよく分からないよという方はこちらを参考にしてください。
結果3文字目と4文字目の「さた」が抽出できました。
RANDBETWEEN関数を工夫してみよう
ここでRANDBETWEEN関数にひと工夫入れておきます。
先ほどは1から9999を直接指定する数式を書きましたが、次は1からA2セルの数値を範囲指定してみましょう。
A4セルに「=RANDBETWEEN(1,$A$2)」と入力します。
すると、1~10までの数値範囲で乱数が発生しますね。
しかし、欲しいのは文字列です。
そこで、先ほど紹介したMID関数と組み合わせて文字を取り出します。
上記の例で言えば、A4セルに書き出されたのは「6」ですから、A1セルの文字列「あかさたなはまやらわ」の6番目の「は」が取り出せれば良さそうです。
そこで、両関数を組み合わせて
A5セルに「=MID($A$1,RANDBETWEEN(1,$A$2),1)」と入力します。
A1セルの文字列からRANDBETWEEN関数で発生させた乱数(1~10)を開始位置として1文字取り出します。
これで特定の文字列から1文字抽出することができました。
英数字から抽出する
続いて英数字から抽出してみましょう。
方法は先ほどと同じです。
新しいシートのA1セルに以下のように文字列を用意します。
A2セルではLEN関数を使ってA1の文字数をカウントします。
さらに、A3セルに「=MID($A$1,RANDBETWEEN(1,$A$2),1)」と入力します。
文字が抽出できていれば成功です。
8桁のパスワードを作ってみる
さて、関数を組み合わせて文字をランダムに抽出することができました。
次は、先ほどの結果を使って8桁のパスワードを作ってみます。
いろいろ方法はあるかと思いますが、簡単な方法をご紹介します。
A3セルに入っている数式を以下のようにコピーして8列分枠を用意します。
そして、I3セルに「=A3&B3&C3&D3&E3&F3&G3&H3」と入力します。
これで完了です。
「&」でつなげていますが、代わりにCONCATENATE関数を使っても良いと思います。
また、8文字抜き出すのに8列使いましたが、関数をネストして1列に集約することもできます。
僕は作業列を設けることを好むので敢えて8列使いました。
お好みで使ってください。
最後に必要な数だけ数式をコピーしてパスワードを生成してみましょう。
まとめ
今回は、RANDBETWEEN関数とMID関数を主に紹介してました。
関数を組み合わせることで応用的なこともできます。
パスワード生成だけではなく、ほかのシーンでも活用できることがあれば応用してみてください。
特にMID関数は文字列操作をする上で重要な関数なので覚えておきましょう。
次回は、VBAを使ってファイルにパスをかける方法をご紹介していく予定です。
ではまた次回お会いしましょう。
[記事一覧]エクセルでパスワード管理を徹底する方法
RANDBETWEEN関数を使ってパスワードを作る方法【エクセル関数】
VBAで複数のファイルを作成しそのファイルにパスワードを設定する方法
エクセルVBAでRANDBETWEEN関数を使って8桁のパスワードを複数設定する方法
エクセルVBAでファイル作成とパスワード設定を同時に行う方法