Excel VBA質問箱 IV

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

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


7651 / 13645 ツリー ←次へ | 前へ→

【37548】複数項目から○×判定を出す方法 アッキー★ 06/5/11(木) 15:18 質問[未読]
【37549】Re:複数項目から○×判定を出す方法 Statis 06/5/11(木) 15:31 発言[未読]
【37551】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/11(木) 15:44 質問[未読]
【37556】Re:複数項目から○×判定を出す方法 Statis 06/5/11(木) 16:23 回答[未読]
【37569】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/12(金) 8:44 お礼[未読]
【37573】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/12(金) 12:10 質問[未読]
【37575】Re:複数項目から○×判定を出す方法 Statis 06/5/12(金) 13:02 発言[未読]
【37578】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/12(金) 13:48 発言[未読]
【37581】Re:複数項目から○×判定を出す方法 Jaka 06/5/12(金) 14:04 発言[未読]
【37582】Re:複数項目から○×判定を出す方法 Statis 06/5/12(金) 14:09 発言[未読]
【37585】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/12(金) 15:19 質問[未読]
【37586】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/12(金) 15:24 発言[未読]
【37587】Re:複数項目から○×判定を出す方法 Statis 06/5/12(金) 15:40 発言[未読]
【37588】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/12(金) 15:46 発言[未読]
【37589】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/12(金) 15:50 発言[未読]
【37590】Re:複数項目から○×判定を出す方法 Statis 06/5/12(金) 16:04 回答[未読]
【37593】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/12(金) 16:44 質問[未読]
【37594】Re:複数項目から○×判定を出す方法 Statis 06/5/12(金) 16:56 回答[未読]
【37598】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/12(金) 17:15 発言[未読]
【37599】Re:複数項目から○×判定を出す方法 Statis 06/5/12(金) 17:21 発言[未読]
【37601】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/12(金) 17:30 発言[未読]
【37665】Re:複数項目から○×判定を出す方法 Statis 06/5/15(月) 9:17 発言[未読]
【37668】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/15(月) 9:44 発言[未読]
【37673】Re:複数項目から○×判定を出す方法 ハチ 06/5/15(月) 10:30 発言[未読]
【37676】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/15(月) 11:15 お礼[未読]
【37607】Re:複数項目から○×判定を出す方法 Mi 06/5/12(金) 20:31 質問[未読]
【37666】Re:複数項目から○×判定を出す方法 Statis 06/5/15(月) 9:20 発言[未読]
【37682】Re:複数項目から○×判定を出す方法 Mi 06/5/15(月) 18:36 発言[未読]
【37706】Re:複数項目から○×判定を出す方法 Statis 06/5/16(火) 8:58 発言[未読]
【37707】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/16(火) 9:59 質問[未読]
【37710】Re:複数項目から○×判定を出す方法 Statis 06/5/16(火) 10:25 発言[未読]
【37711】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/16(火) 11:13 発言[未読]
【37712】Re:複数項目から○×判定を出す方法 Statis 06/5/16(火) 11:52 発言[未読]
【37713】Re:複数項目から○×判定を出す方法 アッキー★ 06/5/16(火) 12:06 発言[未読]
【37714】Re:複数項目から○×判定を出す方法 Statis 06/5/16(火) 12:14 発言[未読]
【37724】Re:複数項目から○×判定を出す方法 Mi 06/5/16(火) 21:03 発言[未読]
【37729】Re:複数項目から○×判定を出す方法 Statis 06/5/17(水) 9:09 回答[未読]
【37747】Re:複数項目から○×判定を出す方法 Mi 06/5/17(水) 18:19 お礼[未読]
【37758】Re:複数項目から○×判定を出す方法 Statis 06/5/18(木) 8:33 回答[未読]

【37548】複数項目から○×判定を出す方法
質問  アッキー★  - 06/5/11(木) 15:18 -

引用なし
パスワード
   はじめまして、マクロ最近始めました!

   A          B        M      N

1 深さ、高さ…etc  0.05mm、0.1mm…etc  測定器具名   判定

このような表で、A〜Mまでは外注メーカーさんが入力します。
あらかじめ自社で用意した条件と全てが一致すれば、Nに○or×が表示されるというマクロを組みたいのです。
例えば、A:深さ B:0.05mm の場合M:1.か2.ならN:○
    A:深さ B:0.35mm の場合M:2.か4.ならN:○
    A:長さ B:0.20mm の場合M:8.か9.ならN:○
       1つでも条件が一致しない場合はN:×

という具合にしたいのですが数週間先輩と挑戦しても構文がダメでした。
誰か教えて下さい m(__)m

【37549】Re:複数項目から○×判定を出す方法
発言  Statis  - 06/5/11(木) 15:31 -

引用なし
パスワード
   こんにちは
条件が3つぐらいならコードに記載しても良いですが
他にもあるのでしたら、条件用のシートを作ったほうが
良いと思いますよ。
実際条件はどのくらいあるのでしょうか?

【37551】Re:複数項目から○×判定を出す方法
質問  アッキー★  - 06/5/11(木) 15:44 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>条件が3つぐらいならコードに記載しても良いですが
>他にもあるのでしたら、条件用のシートを作ったほうが
>良いと思いますよ。
>実際条件はどのくらいあるのでしょうか?

返信ありがとうございます。
条件の組み合わせは100種類程になります。
ちなみに条件用のシートをsheet2に作成したとして、実際プログラムはどのように作成したらいいのでしょう?ちょっと検討がつかないです、初心者でごめんなさい。よろしくお願いします。

【37556】Re:複数項目から○×判定を出す方法
回答  Statis  - 06/5/11(木) 16:23 -

引用なし
パスワード
   こんにちは


条件ファイルはSheet1のみとします。(このファイルに下記のコードを記載する)

条件ファイルSheet1の記載方法
 条件は下記ように正確に記載
 条件は1行目より始まる
   A      B      C
1 A列の条件 B列の条件 M列の条件   →データファイルの該当シートの列
2  
3
     以降続く(100件)

データファイルのシートはSheet1としています
更に実データは2行目からで1行目は項目行とします。
IV列を作業列して使います。

では下記のコードを条件ファイルの標準モジュールにて記載して下さい。

実行にあたって
 条件ファイルと、データファイルが開いている事(それ以上開いている場合は処理しません)

ではお試しを。

Sub Test()
Dim Wb As Workbook, Ws As Worksheet, R As Range, C As Range
Dim Fi As Range, Ad As String
If Workbooks.Count <> 2 Then Exit Sub
For Each Wb In Workbooks
  If Wb.Name <> ThisWorkbook.Name Then
    Set Ws = Wb.Worksheets("Sheet1")
    Exit For
  End If
Next Wb
With ThisWorkbook.Worksheets("Sheet1")
   With .Range("A1", .Range("A65536").End(xlUp)).Offset(, 255)
     .Formula = "=CONCATENATE(A1,B1,C1)"
     .Value = .Value
     Set R = .Offset(0)
   End With
End With
With Ws.Range("A2", Ws.Range("A65536").End(xlUp))
   .Offset(, 255).Formula = "=CONCATENATE(A2,B2,M2)"
   .Offset(, 255).Value = .Offset(, 255).Value
   For Each C In R
     Set Fi = Ws.Columns(256).Find(C.Value, , xlValues, xlWhole)
     If Not Fi Is Nothing Then
      Ad = Fi.Address
      Do
       Set Fi = Ws.Columns(256).FindNext(Fi)
       Fi.Offset(, -242).Value = "○"
      Loop Until Ad = Fi.Address
      Set Fi = Nothing
     End If
   Next C
   .Offset(, 255).Clear
   On Error Resume Next
   .Offset(, 13).SpecialCells(xlCellTypeBlanks).Value = "×"
   On Error GoTo 0
End With
R.Clear
Set Ws = Nothing: Set R = Nothing
End Sub

【37569】Re:複数項目から○×判定を出す方法
お礼  アッキー★  - 06/5/12(金) 8:44 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>
>
>条件ファイルはSheet1のみとします。(このファイルに下記のコードを記載する)
>
>条件ファイルSheet1の記載方法
> 条件は下記ように正確に記載
> 条件は1行目より始まる
>   A      B      C
>1 A列の条件 B列の条件 M列の条件   →データファイルの該当シートの列
>2  
>3
>     以降続く(100件)
>
>データファイルのシートはSheet1としています
>更に実データは2行目からで1行目は項目行とします。
>IV列を作業列して使います。
>
>では下記のコードを条件ファイルの標準モジュールにて記載して下さい。
>
>実行にあたって
> 条件ファイルと、データファイルが開いている事(それ以上開いている場合は処理しません)
>
>ではお試しを。
>
>Sub Test()
>Dim Wb As Workbook, Ws As Worksheet, R As Range, C As Range
>Dim Fi As Range, Ad As String
>If Workbooks.Count <> 2 Then Exit Sub
>For Each Wb In Workbooks
>  If Wb.Name <> ThisWorkbook.Name Then
>    Set Ws = Wb.Worksheets("Sheet1")
>    Exit For
>  End If
>Next Wb
>With ThisWorkbook.Worksheets("Sheet1")
>   With .Range("A1", .Range("A65536").End(xlUp)).Offset(, 255)
>     .Formula = "=CONCATENATE(A1,B1,C1)"
>     .Value = .Value
>     Set R = .Offset(0)
>   End With
>End With
>With Ws.Range("A2", Ws.Range("A65536").End(xlUp))
>   .Offset(, 255).Formula = "=CONCATENATE(A2,B2,M2)"
>   .Offset(, 255).Value = .Offset(, 255).Value
>   For Each C In R
>     Set Fi = Ws.Columns(256).Find(C.Value, , xlValues, xlWhole)
>     If Not Fi Is Nothing Then
>      Ad = Fi.Address
>      Do
>       Set Fi = Ws.Columns(256).FindNext(Fi)
>       Fi.Offset(, -242).Value = "○"
>      Loop Until Ad = Fi.Address
>      Set Fi = Nothing
>     End If
>   Next C
>   .Offset(, 255).Clear
>   On Error Resume Next
>   .Offset(, 13).SpecialCells(xlCellTypeBlanks).Value = "×"
>   On Error GoTo 0
>End With
>R.Clear
>Set Ws = Nothing: Set R = Nothing
>End Sub

おはようございます。
昨日は別件の仕事で手がつけられませんでした。
細かい教えに深く感謝致します!!
プログラムの1文1文の意味を調べながらさっそく試してみます。
ありがとうございましたm(__)m

【37573】Re:複数項目から○×判定を出す方法
質問  アッキー★  - 06/5/12(金) 12:10 -

引用なし
パスワード
   (Statisさんには申し訳無いです)
先日教えて頂いた構文を実際に打ち込んでいくと、構文エラーが結構出てきてしまいました。(1行目から)
自分には何が間違っているのかすら分からず困っています。
よろしくご指導お願いします。

【37575】Re:複数項目から○×判定を出す方法
発言  Statis  - 06/5/12(金) 13:02 -

引用なし
パスワード
   ▼アッキー★ さん:
>(Statisさんには申し訳無いです)
>先日教えて頂いた構文を実際に打ち込んでいくと、構文エラーが結構出てきてしまいました。(1行目から)
>自分には何が間違っているのかすら分からず困っています。
>よろしくご指導お願いします。

どこでErrが出て、Err内容は何でしょうか?

【37578】Re:複数項目から○×判定を出す方法
発言  アッキー★  - 06/5/12(金) 13:48 -

引用なし
パスワード
   1.:Dim Wb As Workbook.Ws As Worksheet.R As Range.C As Range
            ↑のAsに色がつき「コンパイルエラー:修正候補:ステー            トメントの最後」
2.:Dim Fi As Range.Ad As String
            ↑のAsに色がつき「コンパイルエラー:修正候補:ステー            トメントの最後」
3.With Range("A1..Range("A65536").End(xlUp)).Offset(255)
             ↑のA65536に色がつき「コンパイルエラー:修正候補:              区切り記号または)」
4.With Ws.Rnge("A2".Ws.Range("A65536").End(xlUp))
         ↑のカンマに色がつき「コンパイルエラー:修正候補:区切り          記号または)」
5.Set Fi=Ws Columns(256).Find(C.Value..xlValues.xlWhole)
                   ↑のカンマ1個に色がつき「コンパイル                    エラー:修正候補:識別子または角か             っこ([])で囲む必要がある名前が含まれています。」
と出ます。
よろしくお願いします。

【37581】Re:複数項目から○×判定を出す方法
発言  Jaka  - 06/5/12(金) 14:04 -

引用なし
パスワード
   ▼アッキー★ さん:
>1.:Dim Wb As Workbook.Ws As Worksheet.R As Range.C As Range
>            ↑のAsに色がつき「コンパイルエラー:修正候補:ステー            トメントの最後」
  以下略

-----
>先日教えて頂いた構文を実際に打ち込んでいくと、構文エラーが結構出てきてしまいました。(1行目から)

「実際に打ち込んでいくと」ただ打ち込んだと思っているだけで誤字だらけだから....。
良く見直してください。
また、質問者の中に同じように動きません、エラーになりますとおっしゃる方の多くに、自分の打ち込みミスを棚に上げる方もいます。
打ち込まず、コピペしてください。

【37582】Re:複数項目から○×判定を出す方法
発言  Statis  - 06/5/12(金) 14:09 -

引用なし
パスワード
   こんにちは
「.」ドットではありません「,」カンマです。
私のコードを一度、標準モジュールにコピーして
確認して下さい。

【37585】Re:複数項目から○×判定を出す方法
質問  アッキー★  - 06/5/12(金) 15:19 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>「.」ドットではありません「,」カンマです。
>私のコードを一度、標準モジュールにコピーして
>確認して下さい。
Statisさん大変失礼しました。コピーさせて頂きバッチリでした。
ヒントをもらって自分なりにやってみようと思っていたのですいません。
今回教えて頂いたのは試作用で本番用はもう少し複雑な条件表になるのです。
空いてる時にでも教えて下さい。

・条件表

   A      B      C        D
1  特性    備考    基準値     使用機器

2                      あああ
   長さ   100以下  0.05mm       いいい
3  ↓                  ううううう
   ↓
4  ↓                    
   ↓                    eee
5  ↓    100以上  0.10〜       ffffff  
   ↓           0.20mm      ccccc
6  長さ

で、実データ記入表は

    E        F      G  〜〜   M      N      
8  条件のA列    条件B列   条件C列   条件D列    ○×

9

10

11

12


・特性、備考、基準値を満たす使用機器が選ばれていれば○(できればセルを薄い青色に塗りつぶしたい)、1つでもはずれれば×(セルを薄い赤に)。
せめてヒント構文だけでもよろしくお願いしますm(_ _)m

【37586】Re:複数項目から○×判定を出す方法
発言  アッキー★  - 06/5/12(金) 15:24 -

引用なし
パスワード
   やたらと文章がズレてすいません。
条件D列に「あ〜」、「い〜」、「う〜」「e〜」が入ってます。

実データF列が条件のB列
    G列が条件のC列
    M列が条件のD列
    N列に○×判定
です。お願いします。

【37587】Re:複数項目から○×判定を出す方法
発言  Statis  - 06/5/12(金) 15:40 -

引用なし
パスワード
   こんにちは
条件表は実データ表に記載される内容と一緒である事
例えば:A列がすべて「長い」ならすべて「長い」と入力する事
    空白や「同上」は不可

実データに条件列の確認です。
実データのE列=条件表のA列
実データのF列=条件表のB列
実データのG列=条件表のC列
実データのM列=条件表のD列

N列は「○」か「×」+塗りつぶぢですか?

【37588】Re:複数項目から○×判定を出す方法
発言  アッキー★  - 06/5/12(金) 15:46 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>条件表は実データ表に記載される内容と一緒である事
>例えば:A列がすべて「長い」ならすべて「長い」と入力する事
>    空白や「同上」は不可
>
>実データに条件列の確認です。
>実データのE列=条件表のA列
>実データのF列=条件表のB列
>実データのG列=条件表のC列
>実データのM列=条件表のD列
>
>N列は「○」か「×」+塗りつぶぢですか?
こんにちは
その通りです。

【37589】Re:複数項目から○×判定を出す方法
発言  アッキー★  - 06/5/12(金) 15:50 -

引用なし
パスワード
   ▼アッキー★ さん:
>▼Statis さん:
>>こんにちは
>>条件表は実データ表に記載される内容と一緒である事
>>例えば:A列がすべて「長い」ならすべて「長い」と入力する事
>>    空白や「同上」は不可
>>
>>実データに条件列の確認です。
>>実データのE列=条件表のA列
>>実データのF列=条件表のB列
>>実データのG列=条件表のC列
>>実データのM列=条件表のD列
>>
>>N列は「○」か「×」+塗りつぶぢですか?
>こんにちは
>その通りです。
ごめんなさい、追加で
A列には長い以外に深いや粗さ等20種類特性項目があります。

【37590】Re:複数項目から○×判定を出す方法
回答  Statis  - 06/5/12(金) 16:04 -

引用なし
パスワード
   こんにちは
条件はすべて記載して下さいと言う事です。
長いや深い、高いがあても問題ないです
ただ、上のセルと同じ値だからと言って「空白」や「同上」や「〃」はNGです。

記入例
  A   B   C
1 項目 項目  項目
2 長い 5mm   a
3 長い 5mm   b
4 高い 6mm   c
5 高い 6mm   d

となる

一応、下記でお試しください。
(セルの背景色はそちらの好みに変更して下さい。数値「34」「38」です)

Sub Test_Ckeck()
Dim Wb As Workbook, Ws As Worksheet, R As Range, C As Range
Dim Fi As Range, Ad As String

If Workbooks.Count <> 2 Then Exit Sub
For Each Wb In Workbooks
  If Wb.Name <> ThisWorkbook.Name Then
    Set Ws = Wb.Worksheets("Sheet1")
    Exit For
  End If
Next Wb
With ThisWorkbook.Worksheets("Sheet1")
   With .Range("A2", .Range("A65536").End(xlUp)).Offset(, 255)
     .Formula = "=CONCATENATE(A2,B2,C2,D2)"
     .Value = .Value
     Set R = .Offset(0)
   End With
End With
With Ws.Range("E2", Ws.Range("E65536").End(xlUp))
   .Offset(, 251).Formula = "=CONCATENATE(E2,F2,G2,M2)"
   .Offset(, 251).Value = .Offset(, 251).Value
   For Each C In R
     Set Fi = Ws.Columns(256).Find(C.Value, , xlValues, xlWhole)
     If Not Fi Is Nothing Then
      Ad = Fi.Address
      Do
       Set Fi = Ws.Columns(256).FindNext(Fi)
       Fi.Offset(, -242).Value = "○"
       Fi.Offset(, -242).Interior.ColorIndex = 34
      Loop Until Ad = Fi.Address
      Set Fi = Nothing
     End If
   Next C
   .Offset(, 251).Clear
   On Error Resume Next
   With .Offset(, 9).SpecialCells(xlCellTypeBlanks)
     .Value = "×"
     .Interior.ColorIndex = 38
   End With
   On Error GoTo 0
End With
R.Clear
Set Ws = Nothing: Set R = Nothing
End Sub

【37593】Re:複数項目から○×判定を出す方法
質問  アッキー★  - 06/5/12(金) 16:44 -

引用なし
パスワード
   ちょっと失敗でした。
・N列が全て○×と色がついてしまう。(実データ未記入行は○表示)
※実データ記入行は8行目から(3〜4回前のレスにしか書いていなかったです)
・○判定のものも×になってしまう。

できれば実データ記入していない行に関しては何もアクションが起こらないようにしたいのです。
よろしくお願いします。

【37594】Re:複数項目から○×判定を出す方法
回答  Statis  - 06/5/12(金) 16:56 -

引用なし
パスワード
   こんにちは

これで如何かな?
Sub Test_Ckeck()
Dim Wb As Workbook, Ws As Worksheet, R As Range, C As Range
Dim Fi As Range, Ad As String, R1 As Range

If Workbooks.Count <> 2 Then Exit Sub
For Each Wb In Workbooks
  If Wb.Name <> ThisWorkbook.Name Then
    Set Ws = Wb.Worksheets("Sheet1")
    Exit For
  End If
Next Wb
With ThisWorkbook.Worksheets("Sheet1")
   With .Range("A2", .Range("A65536").End(xlUp)).Offset(, 255)
     .Formula = "=CONCATENATE(A2,B2,C2,D2)"
     .Value = .Value
     Set R = .Offset(0)
   End With
End With
With Ws.Range("E8", Ws.Range("E65536").End(xlUp))
   .Offset(, 251).Formula = "=CONCATENATE(E8,F8,G8,M8)"
   .Offset(, 251).Value = .Offset(, 251).Value
   Set R1 = .Offset(, 251)
   For Each C In R
     Set Fi = R1.Find(C.Value, , xlValues, xlWhole)
     If Not Fi Is Nothing Then
      Ad = Fi.Address
      Do
       Set Fi = R1.FindNext(Fi)
       Fi.Offset(, -242).Value = "○"
       Fi.Offset(, -242).Interior.ColorIndex = 34
      Loop Until Ad = Fi.Address
      Set Fi = Nothing
     End If
   Next C
   .Offset(, 251).Clear
   On Error Resume Next
   With .Offset(, 9).SpecialCells(xlCellTypeBlanks)
     .Value = "×"
     .Interior.ColorIndex = 38
   End With
   On Error GoTo 0
End With
R.Clear
Set Ws = Nothing: Set R = Nothing: Set R1 = Nothing
End Sub

【37598】Re:複数項目から○×判定を出す方法
発言  アッキー★  - 06/5/12(金) 17:15 -

引用なし
パスワード
   N列はバッチリになりました。
が、○判定のデータが×表示になってしまうのは条件表の問題なのでしょうか?
例えば、フォントのポイントとか、セルの結合とか…
(先程の注意点の空欄とかは無いです)
ちゃんと成功するのもあるんですよね〜。

【37599】Re:複数項目から○×判定を出す方法
発言  Statis  - 06/5/12(金) 17:21 -

引用なし
パスワード
   ▼アッキー★ さん:
>N列はバッチリになりました。
>が、○判定のデータが×表示になってしまうのは条件表の問題なのでしょうか?
>例えば、フォントのポイントとか、セルの結合とか…
>(先程の注意点の空欄とかは無いです)
>ちゃんと成功するのもあるんですよね〜。

ポイントは関係ないと思います。
半角全角は統一しましょう。
結合セルは避けた方が良いです。
○の判定が×という事は完全一致していないという事です。
条件表に問題があるような気がします。
条件表は2行目からデータですよね?

【37601】Re:複数項目から○×判定を出す方法
発言  アッキー★  - 06/5/12(金) 17:30 -

引用なし
パスワード
   >
>ポイントは関係ないと思います。
>半角全角は統一しましょう。
>結合セルは避けた方が良いです。
>○の判定が×という事は完全一致していないという事です。
>条件表に問題があるような気がします。
>条件表は2行目からデータですよね?

そうです、条件表は2行目からデータが入ってます。
半角全角は統一して作ったのですが、指摘通り特にA列に関しては結合セルが多いです。A列が一番おおまかなくくりとなるので、結合させてました。直し始めてみます。

【37607】Re:複数項目から○×判定を出す方法
質問  Mi  - 06/5/12(金) 20:31 -

引用なし
パスワード
   ▼Statis さん:

今晩は。横からごめんなさい。
非常に興味を持ってずーっと見させていただいていました。
実は、私もこれに近いサンプル処理をしていまして、非常に関心があるので一寸質問させてください。
最初に戻るのですが/・・・
この下の意味は、ブックを2つ作成して、それぞれ「条件ファイル」「データファイル」と言う名前を付けてシート1で処理を進めているというように理解してよいのでしょうか。両ファイルを開いた状態で実行しますと
貴殿の作成されたコードの3行目でExitしてしまうのですが何が問題なのでしょうか。

>
>条件ファイルはSheet1のみとします。(このファイルに下記のコードを記載する)
>
>条件ファイルSheet1の記載方法
> 条件は下記ように正確に記載
> 条件は1行目より始まる
>   A      B      C
>1 A列の条件 B列の条件 M列の条件   →データファイルの該当シートの列
>2  
>3
>     以降続く(100件)
>
>データファイルのシートはSheet1としています
>更に実データは2行目からで1行目は項目行とします。
>IV列を作業列して使います。
>
>では下記のコードを条件ファイルの標準モジュールにて記載して下さい。
>
>実行にあたって
> 条件ファイルと、データファイルが開いている事(それ以上開いている場合は処理しません)


アドバイスいただきたく、お願いします。

【37665】Re:複数項目から○×判定を出す方法
発言  Statis  - 06/5/15(月) 9:17 -

引用なし
パスワード
   ▼アッキー★ さん:
こんにちは
>>
>そうです、条件表は2行目からデータが入ってます。
>半角全角は統一して作ったのですが、指摘通り特にA列に関しては結合セルが多いです。A列が一番おおまかなくくりとなるので、結合させてました。直し始めてみます。

前にも書きましたが結合はやめましょう。
A列が多いという事は下記のような感じですか?

  A  B   C  D
2    3mm 5mm あ
3 長い  3mm 5mm い
4    5mm 5mm あ

上記のようにA列(2〜4)は「長い」なので結合しているという事ですか ?
上記はNGですよ
前にも書きましたが下記にしなければだめです。(大変ですが)
  A  B   C  D
2 長い  3mm 5mm あ
3 長い  3mm 5mm い
4 長い  5mm 5mm あ

【37666】Re:複数項目から○×判定を出す方法
発言  Statis  - 06/5/15(月) 9:20 -

引用なし
パスワード
   こんにちは

>If Workbooks.Count <> 2 Then Exit Sub

上記のコードの前に
Msgbox Workbooks.Count
を追加して個数を確認して下さい。

【37668】Re:複数項目から○×判定を出す方法
発言  アッキー★  - 06/5/15(月) 9:44 -

引用なし
パスワード
   ▼Statis さん:
>▼アッキー★ さん:
>こんにちは
>>>
>>そうです、条件表は2行目からデータが入ってます。
>>半角全角は統一して作ったのですが、指摘通り特にA列に関しては結合セルが多いです。A列が一番おおまかなくくりとなるので、結合させてました。直し始めてみます。
>
>前にも書きましたが結合はやめましょう。
>A列が多いという事は下記のような感じですか?
>
>  A  B   C  D
>2    3mm 5mm あ
>3 長い  3mm 5mm い
>4    5mm 5mm あ
>
>上記のようにA列(2〜4)は「長い」なので結合しているという事ですか ?
>上記はNGですよ
>前にも書きましたが下記にしなければだめです。(大変ですが)
>  A  B   C  D
>2 長い  3mm 5mm あ
>3 長い  3mm 5mm い
>4 長い  5mm 5mm あ

おはようございます。
先週はありがとうございました。
指摘点了解しました。今日明日中にはセル結合解除し終えると思います。
そうしたらまた連絡しますm(_ _)m

【37673】Re:複数項目から○×判定を出す方法
発言  ハチ  - 06/5/15(月) 10:30 -

引用なし
パスワード
   >おはようございます。
>先週はありがとうございました。
>指摘点了解しました。今日明日中にはセル結合解除し終えると思います。
>そうしたらまた連絡しますm(_ _)m

横レス失礼します。

セルの結合を解除して同じ値をコピーしてるんだと思うんですが、
そういう規則性のある処理こそ、マクロが威力を発揮するところだと思いますよ。
MergeCells、MergeAreaあたりで検索すればサンプルも出てくるはずです。

【37676】Re:複数項目から○×判定を出す方法
お礼  アッキー★  - 06/5/15(月) 11:15 -

引用なし
パスワード
   ▼ハチ さん:

>
>横レス失礼します。
>
>セルの結合を解除して同じ値をコピーしてるんだと思うんですが、
>そういう規則性のある処理こそ、マクロが威力を発揮するところだと思いますよ。
>MergeCells、MergeAreaあたりで検索すればサンプルも出てくるはずです。

ありがとうございます。
今日の夕方位から作業に取り掛かれる予定でしたので先に教えてもらえて良かったですm(_ _)m

【37682】Re:複数項目から○×判定を出す方法
発言  Mi  - 06/5/15(月) 18:36 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>
>>If Workbooks.Count <> 2 Then Exit Sub
>
>上記のコードの前に
>Msgbox Workbooks.Count
>を追加して個数を確認して下さい。

MsgBox では3と表示されます。

【37706】Re:複数項目から○×判定を出す方法
発言  Statis  - 06/5/16(火) 8:58 -

引用なし
パスワード
   ▼Mi さん:
>▼Statis さん:
>>こんにちは
>>
>>>If Workbooks.Count <> 2 Then Exit Sub
>>
>>上記のコードの前に
>>Msgbox Workbooks.Count
>>を追加して個数を確認して下さい。
>
>MsgBox では3と表示されます。
と言う事はファイルが3つあることになりますよ。

For Each Wb In Workbooks
  msgbox wb.Name
next
を上記コード前に入れて名前を確認して下さい。

【37707】Re:複数項目から○×判定を出す方法
質問  アッキー★  - 06/5/16(火) 9:59 -

引用なし
パスワード
   ▼Statis さん
おはようございます。
指摘通りセルの結合解除することで、○×判定は正確に表示されました。
もう1つだけ質問があり、例えば1mm〜2mmという条件で実データでは1.35mmという値が入力されてきます。しかし、この場合判定は×になってしまいます。
条件表シートでこの「〜」を別の表示にすれば認識してくれるのでしょうか?
もしくはマクロで設定するのでしょうか?
ちなみに、100以上、100以下というケースもあります。

要望多くてすいませんが、空いた時で良いのでよろしくお願いしますm(_ _)m

【37710】Re:複数項目から○×判定を出す方法
発言  Statis  - 06/5/16(火) 10:25 -

引用なし
パスワード
   ▼アッキー★ さん:
こんにちは
>おはようございます。
>指摘通りセルの結合解除することで、○×判定は正確に表示されました。
>もう1つだけ質問があり、例えば1mm〜2mmという条件で実データでは1.35mmという値が入力されてきます。しかし、この場合判定は×になってしまいます。
>条件表シートでこの「〜」を別の表示にすれば認識してくれるのでしょうか?
>もしくはマクロで設定するのでしょうか?
>ちなみに、100以上、100以下というケースもあります。

残念ながら今のコードでは無理です。
上記の条件が同じ列としても文字(以上、以下など)を区分する方法が大変ですね。
お聞きしますが。上記の条件は実際どのくらいありますか?

【37711】Re:複数項目から○×判定を出す方法
発言  アッキー★  - 06/5/16(火) 11:13 -

引用なし
パスワード
   ▼Statis さん:
>
>残念ながら今のコードでは無理です。
>上記の条件が同じ列としても文字(以上、以下など)を区分する方法が大変ですね。
>お聞きしますが。上記の条件は実際どのくらいありますか?

条件表の1番目として【特性:17種類(長さ、深さ等の条件)】を選び、次の条件として【備考:一部のみ(直径100mm以下、100mm以上)】を選び、次にそれぞれの項目が【誤差:0.05mm以下、0.05mm〜0.10mm、0.10mm〜0.20mm、0.20mm以上】の4項目に分かれ、最後に【適正機器:1特性に対し50種類程】としてその誤差範囲内の機器を○×判定するというものです。問題点の以上・以下・x〜yの所は少ないですが、細かく0.01mm、0.011mm、0.12mm…というのは面倒ですがコピー機能で解消できますが、かなり膨大な条件表になりますし、以上・以下は書ききれないですよね。イタイです。

【37712】Re:複数項目から○×判定を出す方法
発言  Statis  - 06/5/16(火) 11:52 -

引用なし
パスワード
   ▼アッキー★ さん:
こんにちは
>条件表の1番目として【特性:17種類(長さ、深さ等の条件)】を選び、次の条件として【備考:一部のみ(直径100mm以下、100mm以上)】を選び、次にそれぞれの項目が【誤差:0.05mm以下、0.05mm〜0.10mm、0.10mm〜0.20mm、0.20mm以上】の4項目に分かれ、最後に【適正機器:1特性に対し50種類程】としてその誤差範囲内の機器を○×判定するというものです。問題点の以上・以下・x〜yの所は少ないですが、細かく0.01mm、0.011mm、0.12mm…というのは面倒ですがコピー機能で解消できますが、かなり膨大な条件表になりますし、以上・以下は書ききれないですよね。イタイです。

確認ですが
特性が17で枝分かれして備考が2なのでこれだっけで条件が34個あり
更に誤差が4つなので136通りあると言う事でしょうか?
最後に訂正機器が50あるなら合計で6800通りになるのでしょうか?
言い事は特性の条件に対してすべて同じ条件で400通りあるのでしょうか?

【37713】Re:複数項目から○×判定を出す方法
発言  アッキー★  - 06/5/16(火) 12:06 -

引用なし
パスワード
   ▼Statis さん:

>
>確認ですが
>特性が17で枝分かれして備考が2なのでこれだっけで条件が34個あり
>更に誤差が4つなので136通りあると言う事でしょうか?
>最後に訂正機器が50あるなら合計で6800通りになるのでしょうか?
>言い事は特性の条件に対してすべて同じ条件で400通りあるのでしょうか?

ちょっと違いまして特性が17でそのうちの1項目のみが「100以上、100以下」のどちらかに分けられます。なので特性の1項目に対しては、少なくて4通り(0.05mm以下〜0.20mm以上まで同じ適正機器の場合)で、多くて24通りです。全部で118通りです。

【37714】Re:複数項目から○×判定を出す方法
発言  Statis  - 06/5/16(火) 12:14 -

引用なし
パスワード
   ▼アッキー★ さん:
こんにちは
>>確認ですが
>>特性が17で枝分かれして備考が2なのでこれだっけで条件が34個あり
>>更に誤差が4つなので136通りあると言う事でしょうか?
>>最後に訂正機器が50あるなら合計で6800通りになるのでしょうか?
>>言い事は特性の条件に対してすべて同じ条件で400通りあるのでしょうか?
>
>ちょっと違いまして特性が17でそのうちの1項目のみが「100以上、100以下」のどちらかに分けられます。なので特性の1項目に対しては、少なくて4通り(0.05mm以下〜0.20mm以上まで同じ適正機器の場合)で、多くて24通りです。全部で118通りです。
やはり見てみないと解からないですね。
内容によってはどうにかコードで区分できそうな気がしますが?
どうにかしてあげたいのですが。

考え方として
固定値は固定値で確認しつつ次に比較値を確認するコードを作る事に
なると思います。

【37724】Re:複数項目から○×判定を出す方法
発言  Mi  - 06/5/16(火) 21:03 -

引用なし
パスワード
   ▼Statis さん:

Miです。アドバイスありがとう御座いました。
WorkBookが2個でないと、問題が解決しないと思いながらフォルダーを作りその中にBookを二つ入れて操作しても、
Msgbox Workbooks.Countが3になり、私も途方にくれました。
何故か、ふと気が付いたのですが、個人マクロが災いしていました。
一旦個人用マクロを全て削除して操作をしましたら、動作がスムースに完了しました。

この個人用マクロも一旦は削除したのですが、ワンポートでプリンターの2台を使い分けるマクロを入れており、これを完全に削除したままでは、一寸寂しいのです。

個人用マクロを残したままこのマクロが使えれば・・・なんてあつかましい気持ちでおります。

また、今日帰宅したら、貴殿から親切に
For Each Wb In Workbooks
  msgbox wb.Name
next
のコードの紹介も頂き感謝しています。
本当にアドバイスありがとう御座いました。
今後ともよろしくお願いします。

【37729】Re:複数項目から○×判定を出す方法
回答  Statis  - 06/5/17(水) 9:09 -

引用なし
パスワード
   ▼Mi さん:
こんにちは
>
>Miです。アドバイスありがとう御座いました。
>WorkBookが2個でないと、問題が解決しないと思いながらフォルダーを作りその中にBookを二つ入れて操作しても、
>Msgbox Workbooks.Countが3になり、私も途方にくれました。
>何故か、ふと気が付いたのですが、個人マクロが災いしていました。
>一旦個人用マクロを全て削除して操作をしましたら、動作がスムースに完了しました。
>
>この個人用マクロも一旦は削除したのですが、ワンポートでプリンターの2台を使い分けるマクロを入れており、これを完全に削除したままでは、一寸寂しいのです。
>
>個人用マクロを残したままこのマクロが使えれば・・・なんてあつかましい気持ちでおります。

そんなに難しくは無いですよ。
最初のコードを下記に変更して頂ければ良いと思います。

Sub Test_Ckeck()
Dim Wb As Workbook, Ws As Worksheet, R As Range, C As Range
Dim Fi As Range, Ad As String, R1 As Range, Ch As Boolean

Ch = True
For Each Wb In Workbooks
  If Wb.Name <> ThisWorkbook.Name And Wb.Name <> "個人マクロファイル名.xls" Then
    Set Ws = Wb.Worksheets("Sheet1")
    Ch = False
    Exit For
  End If
Next Wb
If Ch Then Exit Sub
>With ThisWorkbook.Worksheets("Sheet1")
以下続く

では

【37747】Re:複数項目から○×判定を出す方法
お礼  Mi  - 06/5/17(水) 18:19 -

引用なし
パスワード
   ▼Statis さん:

今晩は。早速の回答ありがとう御座います。
流石ですね。よく分かりました。
ばっちりです。ありがとう御座いました。

>そんなに難しくは無いですよ。

コードを見れば、なるほどっと理解できますが、このコードを書くイメージが湧いてこないのです。まだまだ修行不足です。これからもご指導よろしくお願いします。
横から、お邪魔してすみませんでした。でも本当に勉強になりました。

.Formula = "=CONCATENATE(A6,B6,C6)"の関数は凄いですね。初めての体験です。
&演算子で繋ぐようなことは出来ないのでしょうか?
お時間が有りましたら、で結構です。
もう色々と教えていただいて、横着な質問でごめんなさい。
それでは失礼します。

【37758】Re:複数項目から○×判定を出す方法
回答  Statis  - 06/5/18(木) 8:33 -

引用なし
パスワード
   こんにちは

>&演算子で繋ぐようなことは出来ないのでしょうか?
出来ますよ。
その場合データ分をループしてセルに入力することになると思います。
ただ、処理スピードを考えると関数の方が早いです(データ数にもよりますが)

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