こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBA セルの値を取得する

下記のはランダムにチーム分けするものです。
TmCnt = 5がチーム数です。

Sub Sample()
Dim Total As Integer
Dim TmCnt As Integer
Dim Data1 As Variant
Dim Data2() As String
Dim i As Integer, j As Integer, k As Integer

Total = Cells(Rows.Count, 1).End(xlUp).Row
TmCnt = 5
Data1 = Range("A1:A" & Total).Value
ReDim Data2(1 To Total)
Randomize

For i = TmCnt To 1 Step -1
j = Int(Rnd * i) + 1
Data2(i) = Data1(j, 1)
Data1(j, 1) = Data1(i, 1)
Next i
For i = Total To TmCnt + 1 Step -1
j = Int((i - (TmCnt + 1) + 1) * Rnd + TmCnt + 1)
Data2(i) = Data1(j, 1)
Data1(j, 1) = Data1(i, 1)
Next i

i = 1
Do
For j = 1 To TmCnt
k = k + 1
Cells(i, j + 2).Value = Data2(k)
If k = Total Then Exit Sub
Next j
i = i + 1
Loop
End Sub

TmCnt = 5をセル「B1」にチーム数を入力し、(例「6」「4」など)マクロを実行したいのです。
検索しましたところ、
セルの値を取得するにはRange("A1").Valueを入力だそうです。

TmCnt = 5を下記に書き換えるにはどのようにしたら良いでしょうか?

Dim s As String
s = Range(“B1”).Value
Debug.Print(s)

宜しくお願いします。

投稿日時 - 2019-11-05 15:08:41

QNo.9675236

すぐに回答ほしいです

質問者が選んだベストアンサー

No1の追加です。
また、数値かどうかやチーム数の最低数以上の値かどうかは判定したほうがいいと思います。
3チーム以上とかにするならたとえば

If IsNumeric(Range("B1").Value) And Range("B1").Value > 2 Then
TmCnt = Range("B1").Value
Else
MsgBox "入力に不備があります", vbCritical
End If

投稿日時 - 2019-11-05 15:50:34

お礼

ありがとうございます。
最低数以上の値ですか?気付きませんでした。

投稿日時 - 2019-11-05 16:21:02

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

そのまま
TmCnt = Range(“B1”).Value
でいいと思いますよ。

投稿日時 - 2019-11-05 15:42:34

お礼

コメントありがとうございます。
おかげさまでうまくいきました。

投稿日時 - 2019-11-05 16:20:03

あなたにオススメの質問