Excel VBA質問箱 IV

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

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


37123 / 76738 ←次へ | 前へ→

【44789】Re:判定表を作りたいです。
発言  ichinose  - 06/12/1(金) 13:03 -

引用なし
パスワード
   ▼ヒロユキ さん:
こんにちは。

まず、
>質問ですが、◎に対して半角の数字では淋しいので、
>全角のマル1.からマル5.と表記すること可能でしょうか?
これ・・・。
前回投稿のコードを以下のように変更してください。

'=========================================================
Sub サンプルデータも作成したmainのテスト()
  With Range("a1:c3")
    .FormulaArray = "={""2or17"",""9or10"",""4or15"";" & _
             """7or12"",""5or14"",""3or16"";" & _
             """6or13"",""1or18"",""8or11""}"
    .Value = .Value
    End With
  With Range("b11:b15")
    .Value = Application.Transpose(Array(2, 12, 14, 4, 9))
    Range("a32:c34").ClearContents
    MsgBox "ご覧のデータでmainを実行します"
    Call main
    MsgBox "例1 結果を確認してください"
    .Value = Application.Transpose(Array(11, 5, 8, 18, 7))
    Range("a32:c34").ClearContents
    MsgBox "ご覧のデータでmainを実行します"
    Call main
    MsgBox "例2 結果を確認してください"
    .Value = Application.Transpose(Array(17, 9, 3, 11, 16))
    Range("a32:c34").ClearContents
    MsgBox "ご覧のデータでmainを実行します"
    Call main
    MsgBox "例3 結果を確認してください"
    End With
End Sub
'=====================================================================
Sub main()
  Dim rng As Range
  For Each rng In Range("a32:c34")
    With rng
     .Formula = "=CHOOSE(SUMPRODUCT(ISERROR(MATCH({" & _
        Replace(.Offset(-31, 0).Value, "or", ",") & _
        "},B11:B15,0))*1)+1,""◎""" & _
        ",char(SUMPRODUCT(IF(ISERROR(MATCH({" & _
        Replace(.Offset(-31, 0).Value, "or", ",") & _
        "},B11:B15,0)),0,MATCH({" & _
        Replace(.Offset(-31, 0).Value, "or", ",") & _
        "},B11:B15,0)))+11552),"""")"
'          ↑この数式をちょっと変更しています
     .Value = .Value
     End With
    Next
End Sub


これで試してみてください。


>原因としましては、「参照表は、順位がこのセルに入ります。」
>という伝達のイメージでしか私にはなく、実際に参照表を使用して、
>計算されているとは思いませんでした。

ということなら、最初に「この参照表の作り方をどうすればよいか?」という
ご質問をしてください。
その際には、このような処理を行うバックボーンからの説明が必要ですけどね!!

最初の投稿でも申しましたが、

>>  A    B   C
>>1 2or17  9or10 4or15
>>2 7or12  5or14 3or16
>>3 6or13  1or18 8or11

>↑この参照表が評価するのが難しいデータですが、
>このままでいきましょう。

これ「or」の代わりに「,」にしただけでもコード(数式の箇所)はもう少し
簡単になるんです(だって、Replaceが不要になるから)。

このデータのレイアウトを工夫すれば、
コードはもっと簡単になると思いますよ!!

0 hits

【44766】判定表を作りたいです。 ヒロユキ 06/11/30(木) 21:38 質問
【44769】Re:判定表を作りたいです。 ichinose 06/11/30(木) 22:56 発言
【44773】Re:判定表を作りたいです。 ヒロユキ 06/11/30(木) 23:57 発言
【44777】Re:判定表を作りたいです。 ichinose 06/12/1(金) 7:29 発言
【44778】Re:判定表を作りたいです。 ヒロユキ 06/12/1(金) 8:31 お礼
【44789】Re:判定表を作りたいです。 ichinose 06/12/1(金) 13:03 発言
【44814】Re:判定表を作りたいです。 ヒロユキ 06/12/1(金) 21:04 お礼

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