Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4671 / 13646 ツリー ←次へ | 前へ→

【55256】数独を作っています GURU 08/4/24(木) 18:32 質問[未読]
【55257】Re:数独を作っています かみちゃん 08/4/24(木) 22:39 発言[未読]
【55258】Re:数独を作っています ponpon 08/4/24(木) 22:44 発言[未読]
【55291】Re:数独を作っています Hirofumi 08/4/25(金) 19:44 発言[未読]
【55326】Re:数独を作っています GURU 08/4/28(月) 8:32 お礼[未読]

【55256】数独を作っています
質問  GURU  - 08/4/24(木) 18:32 -

引用なし
パスワード
   一度削除してしまいました。
現在数独を作っているのですが縦横のマスは1〜9までバラバラに入れるコードを自分で作りました。3×3ますに1〜9の入れ方が判らず困っています。
3×3ますに1〜9を入れたいと考えています。
どのようにすればよろしいでしょうか?宜しくお願いします
Sub 表()

Const n As Long = 9
Const m As Long = 9

Dim a(), i As Long, j As Long, k As Long
Dim b As Long, r As Long, u As Long

 Randomize

 ReDim a(1 To m, 1 To n)
 For k = 1 To m
  For i = 1 To n
   a(k, i) = ((i + k) Mod n) + 1
  Cells(k, i).Activate
  Next
 Next
 For j = 1 To m
  r = Int(Rnd * j) + 1
  For i = 1 To n
   b = a(j, i)
   Cells(j, i).Activate
   a(j, i) = a(r, i)
    Cells(r, i).Activate
   a(r, i) = b
   
  Next
 Next
 For j = 1 To m
  r = Int(Rnd * j) + 1
  For i = 1 To n
   b = a(i, j)
   a(i, j) = a(i, r)
   
   a(i, r) = b
    Cells(i, r).Activate
   
    
  Next
 Next

 Worksheets(1).Range("A1").Resize(m, n) = a
 
  
End Sub

【55257】Re:数独を作っています
発言  かみちゃん  - 08/4/24(木) 22:39 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>現在数独を作っているのですが縦横のマスは1〜9までバラバラに入れるコードを自分で作りました。3×3ますに1〜9の入れ方が判らず困っています。

質問をよく読んでいないので、申し訳ないのですが、
「数独 Excel」でWeb検索をするといろいろとヒントになりそうなものがあると
思います。

【55258】Re:数独を作っています
発言  ponpon  - 08/4/24(木) 22:44 -

引用なし
パスワード
   私は、ネット上にあったコードを改造して
子ども用にゲームにしてますよ。
どこにあったかは、忘れましたが、グーグルで
検索して見つけたと思います。

【55291】Re:数独を作っています
発言  Hirofumi  - 08/4/25(金) 19:44 -

引用なし
パスワード
   数独て、ナンバープレースと同じ物だと思いますが?
前に、ナンバープレースの問題を解くマクロを作って見た事が有りますが、
数独の問題を作るとなると、数独の問題を解くマクロ作るだけの知識が無いと
出来ない様な気がします

【55326】Re:数独を作っています
お礼  GURU  - 08/4/28(月) 8:32 -

引用なし
パスワード
   皆さん回答有難うございます。
プログラミングの勉強がてら今一度もう少し自分で考えて作ってみようと思います。

4671 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free