人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【エクセル】あるセルにランダムな文字列(数列)を6文字作ってくれる方法を探しています。
A?Zまでの文字を2文字と0?9までの数字を4文字の計6文字を返す関数やマクロを求めています。

セルは複数作成する予定ですが、6文字の文字列(数列)は不規則な規則性の下で重複しても構いません。なお、アルファベットは数字の両端に1文字ずつおきたいと考えています。

●質問者: Newswirl
●カテゴリ:コンピュータ 学習・教育
✍キーワード:アルファベット エクセル セル マクロ ランダム
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● SALINGER
●35ポイント ベストアンサー

ユーザー定義関数です。

標準モジュールにコピペしてください。

Function MakeRND() As String
 Randomize
 MakeRND = Chr(Int(Rnd * 26) + 65) & Format(Int(Rnd * 10000), "0000") & Chr(Int(Rnd * 26) + 65)
End Function

表示したい数式に

=MakeRND()

で文字列を表示します。


2 ● HALSPECIAL
●15ポイント
Option Explicit

Private Const ALP As String = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
Private Const NUM As String = "0,1,2,3,4,5,6,7,8,9"

Public Sub テスト()
 Debug.Print GetRndStr
 Debug.Print GetRndStr
 Debug.Print GetRndStr
 Debug.Print GetRndStr
End Sub

Public Function GetRndStr()
 Dim aryALP() As String
 Dim aryNUM() As String
 aryALP = Split(ALP, ",")
 aryNUM = Split(NUM, ",")
 GetRndStr = aryALP(getRnd(0, 25)) & aryNUM(getRnd(0, 9)) & aryNUM(getRnd(0, 9)) & aryNUM(getRnd(0, 9)) & aryNUM(getRnd(0, 9)) & aryALP(getRnd(0, 25))
End Function

Private Function getRnd(ByVal lowerbound As Integer, ByVal upperbound As Integer)
 getRnd = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
End Function

こちらでいかがでしょう


3 ● きねーま
●30ポイント

既に他の方が答えられているかもしれませんが、関数を使うなら

=CHAR(INT(RAND()*26)+65)&INT(RAND()*10)&INT(RAND()*10)&INT(RAND()*10)&INT(RAND()*10)&CHAR(INT(RAND()*26)+65)

以下の部分をコピーしてセルに貼り付ければ、条件の文字列になると思いますが、いかがでしょう?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ