Excel VBA質問箱 IV

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

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


37135 / 76738 ←次へ | 前へ→

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

引用なし
パスワード
   ▼ヒロユキ さん:
おはようございます。


>
>エラーがでました。'1004'のエラーで
>データ例(1)はB32が「0」
>データ例(2)はB32〜C34が「0」で中断しました。
私が確認した限りでは両方とも正しい結果が表示されました。
こういう場合、私とヒロユキ さんが見ているシートが違う
ということが原因になっていると思います。

で、サンプルデータもマクロで作成します。

新規ブック(何も入力されていないブック)の標準モジュールに

'============================================================
Option Explicit
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,""◎""" & _
        ",SUMPRODUCT(IF(ISERROR(MATCH({" & _
        Replace(.Offset(-31, 0).Value, "or", ",") & _
        "},B11:B15,0)),0,MATCH({" & _
        Replace(.Offset(-31, 0).Value, "or", ",") & _
        "},B11:B15,0))),"""")"
     .Value = .Value
     End With
    Next
End Sub

として、何も入力されていないシートに対して、
「サンプルデータも作成したmainのテスト」を実行してみてください

3つの例で試しています。

mainというプログラムは、アクティブシートの
セルA1〜C3、B11〜B15を参照して計算した結果を
セルA32〜C34に出力しています。

mainは前回のコードと何ら変わっていません。


上記のコードが正しく作動しましたら、

ヒロユキ さんが試したデータと上記のコードで作成したサンプルデータの

違いを調べてみてください。

違いが分かれば、原因追求の手がかりになります。

試してみてください。

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 お礼

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