
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
#2です
> そのままマクロを作成してもコンパイルエラー 構文エラーが出ます。
ずっと考えていたのですが、何故エラーになったのかわかりません
新規ファイルを開いて、
標準モジュールに、コピー&貼り付けして、
Samp1 を実行すると、アクティブなシートに結果が表示されると思います
※ 本質問は、必勝法?についてのものになりますか?
> Const CNUM As Long = 37 ' 1 ~
> Const CCNT As Long = 7 ' 個数
この部分
Const CNUM As Long = 42 ' 1 ~
Const CCNT As Long = 6 ' 個数
にすれば、1 ~ 42 から 6 つランダム抽出します
ロト 云々とは直接関係ないものとして回答していました
※ 以下の条件は、条件ではなかったのですね
> 1~37までの数字から7つの数字を選ぶ
> 100通りの組み合わせはすべて異なる組み合わせにしたい
No.3
- 回答日時:
#1の回答者です。
私も未熟です。
単に、Excelの標準モジュールを挿入して、全部をコピーして、そこに貼り付けてください、というぐらいしかありません。それ以上は、私は分かりません。
>End Subのあとのプラグラムの意味もよくわかりません。
並べ替えをするための別のプログラムです。汎用性があるので、別になっています。
何も程度の低いExcelよりも、Vector等で適当なツールを探してもよろしいかと思います。それ自体は、ワークシートの関数でも可能ですが、ワークシートの関数のRAND()の性能は、すこぶる悪いので、想像以上に並びに偏りが出るのではないかと思います。(OSに別の、擬似乱数発生ジェネレータを入れれば高性能にすることはできるでしょうけれども。)
私が、#1で書いたように、ロトの理論(例:ゲイル理論)というものは存在するようですし、それで数年は生活できる人がいると豪語しているようで、本当は、その理論のほうが価値があるような気がします。
http://happyloto.ciao.jp/contents/basic/gail_rir …
私が#1の添付画像で示したのは、どこかのサイトで紹介された理論で作られたもので、当然、インターネットで、ミズホ銀行の当選番号案内で一定期間のデータを取って、上中下と3つに区切り、その3つの中の並び替えをして、当たりクジを探すというものです。掲示板では公開はするつもりはありませんが、お金を掛けるゲーム性が強いものですから、それなりに、ご自身で勉強することを望みます。
ロト6の神様 最強のゲイル理論
http://amazon.co.jp/dp/4895955559
No.2
- 回答日時:
以下でどうでしょう
標準モジュールに記述して Samp1 実行すると
アクティブシートに結果が表示されます
Const 部分を変更すれば・・・・
Public Sub Samp1()
Const CNUM As Long = 37 ' 1 ~
Const CCNT As Long = 7 ' 個数
Const CPTN As Long = 100 ' 結果行数
Dim dic As Object
Dim vA As Variant
Dim iA(1 To CNUM) As Long
Dim i As Long, j As Long, k As Long
Set dic = CreateObject("Scripting.Dictionary")
Randomize
While (dic.Count < CPTN)
ReDim vA(1 To CNUM)
For i = 1 To CNUM
iA(i) = i
Next
For i = 0 To CCNT - 1
k = CNUM - i
j = Int(k * Rnd()) + 1
vA(iA(j)) = iA(j)
iA(j) = iA(k)
Next
dic(Join(vA, ",")) = Empty
Wend
Application.ScreenUpdating = False
Cells.Delete
With Range("A1").Resize(dic.Count)
.Value = WorksheetFunction.Transpose(dic.Keys)
.TextToColumns .Cells(1), xlDelimited _
, ConsecutiveDelimiter:=True, Comma:=True
On Error Resume Next
.SpecialCells(xlCellTypeBlanks).Delete xlShiftToLeft
On Error GoTo 0
With .CurrentRegion
For j = .Columns.Count To 1 Step -1
.Sort .Cells(j), xlAscending, Header:=xlNo
Next
End With
End With
Application.ScreenUpdating = True
Set dic = Nothing
End Sub
早速回答を頂きましてありがとうございます。
Const 部分を変更すれば・・・・
私の未熟さ故どう変更すればいいのかわかりません。
そのままマクロを作成してもコンパイルエラー 構文エラーが出ます。
未熟な私に理解できるようお願いします。
No.1
- 回答日時:
これは、昔、Microsoft Officeの日本の宣伝で、大学生のお兄ちゃんは、Office のExcelでロト7の数字も作れるというようなことを書いていました。
結構、のせられた人もいたのではないでしょうか。マイクロソフトも罪なことをしますね。でも、その頃、私も挑戦したことがあります。それは、添付画像にその頃の残骸がありますから、ご覧ください。インターネットで、あたり番号の統計を取って、その傾向から次を予測するというものです。
[100通りの組み合わせはすべて異なる組み合わせ]
そのままの組み合わせを出そうとしたら、PCのスペックが越えてしまいます。
もちろん、ご質問そのものは、Excelを良く知っている人なら作れますし、それは以下のような簡単なマクロでできます。もしかしたら、マクロのおかしい部分があるかもしれませんが、数字は取れるはずです。
私が作成した時は、統計を用いる方法があるのですが、だいたい、1年間のデータ(2年以上だと狂う)を使って、その順位の傾向を測るという、「傾向の高い数は再びでる」という原則を用いたものですが、それでも、面白いものが出来ました。中には、そういう方式で、数年間は、それだけで生活できた人がいるというのだから、おどろきです。(なにか、眉唾のような気がしますが……。)ということで、
人に聞くのではなくて、ご質問者自身でも研究なさってみたらいかがですか?いくつかの理論があるそうです。(作る方が面白いですよ。添付画像はミニロト版です。実際に購入したことはありません)理屈はすごいです。もし、これで生活できるほどの的中率なら、公開などしませんね。(^^;
最初は、関数で作ろうとしたけれども、Excelが動かなくなってしまいました。でも、こんなに面白いものは、他にはありません。
以下は、やってみると、順位にはばらつきがあるようです。1行目は、順番を1~37を入れるようにしています。
擬似乱数発生ジェネレーター(一様乱数)の関係で、途中で止めたら、その全部の数字は使えなくなるので、1回、100個なら100個全部を出力してください。
書き出しは、"A2:AK101"を使います。
これは、ロト7用です。
'//
Sub LotNumCreate()
Dim nums(1 To 37, 1 To 2)
Dim nums2 As Variant
Dim i As Long, j As Long, k As Long
Dim cnt As Long: cnt = 1
k = 2
'データがあればクリア
ActiveSheet.Range("A2:AK101").ClearContents
'注意:一様乱数は途中で止めたら、乱数でなくなります!
Randomize
Do
For i = 1 To 37
nums(i, 1) = Rnd()
nums(i, 2) = i
Next
nums2 = MakingPos(nums)
Application.ScreenUpdating = False
For j = 1 To 37
Cells(k, j).Value = nums(j, 2)
DoEvents
Next j
Application.ScreenUpdating = True
k = k + 1
cnt = cnt + 1
Loop Until cnt > 100
End Sub
Function MakingPos(dArray)
Dim i As Long
Dim j As Long
Dim buf As Double, buf2 As Long
If Not IsArray(dArray) Then Exit Function
For i = UBound(dArray) To LBound(dArray) Step -1
For j = LBound(dArray) + 1 To i
If dArray(j - 1, 1) > dArray(j, 1) Then
buf = dArray(j - 1, 1)
buf2 = dArray(j - 1, 2)
dArray(j - 1, 1) = dArray(j, 1)
dArray(j - 1, 2) = dArray(j, 2)
dArray(j, 1) = buf
dArray(j, 2) = buf2
End If
Next j
Next i
MakingPos = dArray
End Function
'//
以下は、ミニロトのサンプル画像で、本件とは直接関係がありません。

せっかくご回答を頂きましたが私の未熟さのため理解できません。
プログラムをそのままマクロにコピーしてもコンパイルエラー(構文エラー)がでます。また、End Subのあとのプラグラムの意味もよくわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 ロト6の当選確率 3 2022/06/09 22:47
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) Excelの数式についての質問 1 2022/10/31 15:50
- くじ・懸賞 ロト7の質問です。 1 2022/03/29 11:36
- Excel(エクセル) エクセルで●●年にかかわりなく、任意の月日期間内にあるか?調べるには? 2 2022/05/25 10:39
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/07/08 13:46
- くじ・懸賞 ロト7で1桁目は統一して全て同じ番号で、2桁目から7桁目を自分で考えた組み合わせで66600円買った 3 2023/08/14 22:01
- 数学 無理数の数字の組み合わせ。無限の意味について 5 2022/05/28 22:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2本の当たりくじを含む10本のく...
-
町内会の持ち回りで民生委員と...
-
ロトの八百長
-
宝くじは何故イカサマがバレな...
-
宝くじの前後賞って何ですか?...
-
数学の問題です。
-
ロト6を予想する無料優良サイ...
-
数万円の商品ををくじ引き販売...
-
予知夢?正夢?念・・・?本当...
-
ロト6を400円分だけ購入しまし...
-
宝くじを三億円分買ったら
-
貧乏くじ ってどういう意味ですか
-
数学の確率の問題です〈その2〉
-
宝くじについて
-
totoBIGの投票口数と投票枚数の...
-
ロト6の過去の1等当選番号は、...
-
人が傷つくような言葉を言われ...
-
今日、1日でスロット10万円近く...
-
スクラッチ
-
ロト6は本当に1・2等当たる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2本の当たりくじを含む10本のく...
-
ロトの八百長
-
町内会の持ち回りで民生委員と...
-
スクラッチ(宝くじ)の削り方...
-
宝くじは何故イカサマがバレな...
-
2%って具体的にどのくらいの確...
-
六星占術で宝くじ購入に適して...
-
ロト6購入すること13年です。13...
-
totoBIGの投票口数と投票枚数の...
-
エクセルで三角くじを(正方形...
-
オンボードと外付の違い(NIC)
-
数学の問題です。
-
ロト7の組み合わせをExcelでラ...
-
宝くじの売り場の人が不正をす...
-
スクラッチのパチもの?サイト...
-
宝くじって 国が操作してるのは...
-
この問題を教えてください泣
-
宝くじで高額当選しても、購入...
-
今回は私は宝くじのロト6は一口...
-
魔術代行で恋愛成就させたい
おすすめ情報