Excel VBA質問箱 IV

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

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


39781 / 76732 ←次へ | 前へ→

【42058】Re:条件数の変化
回答  りん E-MAIL  - 06/8/30(水) 18:00 -

引用なし
パスワード
   もとあし さん、こんばんわ。

>ところが、表1と表2ではいくつかあるKeywordの数と内容が少し異なります。
>例えば表1のKeywordが「不要」「必要」「賞味期限」と3つあった場合、
>表2のKeywordは「不要」「必要」のみの2つであったとします。
ダミーコードのようなので、実際はいくつの分岐があるのかはしりませんが、判断の部分を関数として分離してみました。

sub なんとか()
>For i = 7 To n '7行目からCells.End(xlUp).Rowで得た最終行まで
  With Application.ActiveSheet
  If tp1(.Cells(i, 12).Value, 3) = True Then
>   'B列〜L列までのセルを転記
    .Range(.Cells(i, 2), .Cells(i, 12)).Copy _
    Destination:=Workbooks("wb").Sheets("sheet1").Cells(x, 2)
> End If
  End With
>Next i
・・・・
End Sub
'判定する関数
関数tp1 arg1:判定基準の文字列, NN:チェックするキーワードの数(上限)
Function tp1(arg1 As String, NN As Integer) As Boolean
  Dim flg As Boolean, s1 As Variant, II As Integer, Imax As Integer
  s1 = Array("不要", "必要", "賞味期限") 'チェックするキーワードのリスト
  '念のため配列の上限をチェック
  If NN > UBound(s1) + 1 Then Imax = UBound(s1) Else Imax = NN - 1
  For II = 0 To Imax
   flg = flg Or Left(arg1, Len(s1(II))) = s1(II)
  Next
  tp1 = flg
End Function

こんな感じです。
orなので関係ないワードもチェックしても特に問題はなさそうな(出ないなら問題はない)気はしますが。

0 hits

【42049】条件数の変化 もとあし 06/8/30(水) 13:38 質問
【42058】Re:条件数の変化 りん 06/8/30(水) 18:00 回答
【42116】Re:条件数の変化 もとあし 06/9/1(金) 15:08 お礼
【42264】Re:条件数の変化 もとあし 06/9/5(火) 10:55 質問
【42271】Re:条件数の変化 Kein 06/9/5(火) 11:56 回答
【42453】Re:条件数の変化 もとあし 06/9/12(火) 15:22 お礼

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