Excel VBA質問箱 IV

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

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


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

【72250】複雑でよくわかりません カタツムリ 12/7/2(月) 17:59 質問[未読]
【72251】Re:複雑でよくわかりません rabbit 12/7/2(月) 19:29 発言[未読]
【72252】Re:複雑でよくわかりません rabbit 12/7/3(火) 1:12 発言[未読]
【72253】Re:複雑でよくわかりません カタツムリ 12/7/3(火) 10:08 発言[未読]
【72280】Re:複雑でよくわかりません rabbit 12/7/7(土) 20:58 発言[未読]
【72292】Re:複雑でよくわかりません ジェントルマン 12/7/9(月) 15:41 発言[未読]
【72304】Re:複雑でよくわかりません rabbit 12/7/10(火) 21:48 発言[未読]
【72392】Re:複雑でよくわかりません ジェントルマン 12/7/30(月) 16:53 発言[未読]
【72309】Re:複雑でよくわかりません カタツムリ 12/7/11(水) 10:58 お礼[未読]

【72250】複雑でよくわかりません
質問  カタツムリ  - 12/7/2(月) 17:59 -

引用なし
パスワード
   内容が複雑で助力をお願いします。

A列からH列まであり、
F列の文字列で●●●だった場合、
H列の文字列が▲▲▲であるかをチェックして
NGだった場合は色を変えるように考えています。

ただ●●●の部分で▲▲▲のコメントが変化する場合があります。

下記は例になります。
---------------------------------------------------------------------
・重要番号1111、重要番号1112、重要番号1116、重要番号1119
☆重要番号****に一致したら「特別に対処不要」
☆一致しなかった場合は「殿に連絡」

・開始、終了
☆開始と終了であれば「対処不要」

・重要情報
☆重要情報であれば「殿に連絡」
---------------------------------------------------------------------

F列         H列 
重要番号1111   特別に対処不要
重要番号1119   対処不要      *これはNG
重要番号1122   殿に連絡
開始         対処不要
終了         特別に対処不要   *これはNG
重要情報      殿に連絡     
重要情報       対処不要      *これはNG

申し訳ありませんが、どうにか出来るものでしょうか。
よろしくお願いします。

【72251】Re:複雑でよくわかりません
発言  rabbit  - 12/7/2(月) 19:29 -

引用なし
パスワード
   Select Caseステートメントを使って、
各ケースに応じた「本来あるべき文字列」を求め、
それとH列の実際の文字列を比較すればいいわけですよね。
不明な点はどのあたりですか?
Select Caseステートメントのヘルプに使用例も載っていますから
参考にしてみてはどうでしょうか。

【72252】Re:複雑でよくわかりません
発言  rabbit  - 12/7/3(火) 1:12 -

引用なし
パスワード
   こういった話ですか?(反応ないですが、こちらも忙しいので)
Sub test()
  Dim k As Long
  Dim s As String
  Dim expectation As String
  
  For k = 1 To Cells(1, 1).End(xlDown).Row
    s = Cells(k, 1).Value
    If Left(s, 4) = "重要番号" Then
      Select Case s
      Case "重要番号1111", "重要番号1112", "重要番号1116", "重要番号1119"
        expectation = "特別に対処不要"
      Case Else
        expectation = "殿に連絡"
      End Select
    Else
      Select Case s
      Case "開始", "終了"
        expectation = "対処不要"
      Case "重要情報"
        expectation = "殿に連絡"
      Case Else
        expectation = "想定外"
      End Select
    End If
    If expectation = "想定外" Then
      Cells(k, 3).Value = "想定した文字列以外です"
    Else
      If expectation <> Cells(k, 2).Value Then
        Cells(k, 3).Value = "これはNG"
        'ここで Cells(k, 2)に色をつける
      End If
    End If
  Next
End Sub

【72253】Re:複雑でよくわかりません
発言  カタツムリ  - 12/7/3(火) 10:08 -

引用なし
パスワード
   rabbitさん、返答ありがとうございます。

返信が遅くなり申し訳ありません。
急遽現場に行くことになり、遅くなりました。

>>Select Case 
こんな素晴らしいステートメントがあるんですね。
下記の件、記載ありがとうございます。
お手数をかけてすいません。
一度、確認させていただきます。


▼rabbit さん:
>こういった話ですか?(反応ないですが、こちらも忙しいので)
>Sub test()
>  Dim k As Long
>  Dim s As String
>  Dim expectation As String
>  
>  For k = 1 To Cells(1, 1).End(xlDown).Row
>    s = Cells(k, 1).Value
>    If Left(s, 4) = "重要番号" Then
>      Select Case s
>      Case "重要番号1111", "重要番号1112", "重要番号1116", "重要番号1119"
>        expectation = "特別に対処不要"
>      Case Else
>        expectation = "殿に連絡"
>      End Select
>    Else
>      Select Case s
>      Case "開始", "終了"
>        expectation = "対処不要"
>      Case "重要情報"
>        expectation = "殿に連絡"
>      Case Else
>        expectation = "想定外"
>      End Select
>    End If
>    If expectation = "想定外" Then
>      Cells(k, 3).Value = "想定した文字列以外です"
>    Else
>      If expectation <> Cells(k, 2).Value Then
>        Cells(k, 3).Value = "これはNG"
>        'ここで Cells(k, 2)に色をつける
>      End If
>    End If
>  Next
>End Sub

【72280】Re:複雑でよくわかりません
発言  rabbit  - 12/7/7(土) 20:58 -

引用なし
パスワード
   ▼カタツムリ さん:
>一度、確認させていただきます。
確認結果はどうだったでしょうか。
コードを取得できれば、あとは用無しですか?

【72292】Re:複雑でよくわかりません
発言  ジェントルマン  - 12/7/9(月) 15:41 -

引用なし
パスワード
   rabbitさんへ

あなたは、自分だけが忙しいと思ってはいませんか?


それほど忙しいなら、この質問箱に来て、
わざわざ返答する必要はないのではないでしょうか?


申し訳ないですが、あなたが返答してくれなくても、
この程度の質問であれば返答してくれる人は、
沢山いると思います。


忙しいと言っている割には、
あなたも良くこの質問箱をしつこいくらいに見ていると思いますが・・・


カタツムリさんも忙しいのかも知れません。


以前のコメントもきちんと謝っているのに、
もしかしたら、今も忙しくてコメントが返せないのかも知れません。


>>コードを取得できれば、あとは用無しですか?


もし暇が出来て、このコメントを見たら、どう思われますか?


それに、逆にこんなコメントされる人には、お礼も言いたくなくなりますよ。
言い方悪く言えば、感謝されるほどのコメントされていないという事です。


相手の結果が良ければそれで良くないですか?
多分、カタツムリさんは解決できたのだと私は思います。


解決できなかったら、また質問してくると思いますし・・・


解決できなかったら、また答えてあげれば良いのではありませんか?
ここは助け合いの場所でしょう??

【72304】Re:複雑でよくわかりません
発言  rabbit  - 12/7/10(火) 21:48 -

引用なし
パスワード
   ジェントルマンさんのご発言、一意見として承りました。

> この程度の質問であれば返答してくれる人は、
> 沢山いると思います。
あなたに指摘されるまでもなく、私ももちろんそう思っています。
この程度の話だから、簡単に実行して結果を確認できるはずです。

リアルな世界では、他人に質問して回答を得て、
結果確認しますね、と言ったまま、
返事をせずに放置していたらまずいですよ。単なる事実確認ですから。

ネット上も同じだと思います。
質問者と回答者は対等な関係ですが、
助け合いの場であっても、というか、だからこそ、
リアルな世界の考え方と、別の考え方をする必要はないと私は思います。
同じ事が求められると思います。

私は、そういう積もりで、発言しました。
ちょっと表現がきつかったかも知れませんが。

あなたとは意見が別なようですが、あなたと私は別人格なので、
それは致し方ありません。
あなたは第三者、私は当事者、という違いもあるでしょう。

意見を書き込むことはあなたのご自由ですが、
質問内容以外の件について、これ以上返答する積もりはありません。
あしからず。

【72309】Re:複雑でよくわかりません
お礼  カタツムリ  - 12/7/11(水) 10:58 -

引用なし
パスワード
   rabbitさん、返信遅くなり申し訳ありません。

マクロ初心者ですので、記載して頂いたものを
自分なりに解釈して自分で作り直していましたら、
遅くなってしましました。
又、会社での業務間で作成しており、大分遅くなってます。

まだ途中なのですが、rabbitさんが記載して頂いた貴重なコードを
参考にしながらなんとか出来そうな気がしてきました。
お忙しい中、返信して頂きありがとうございます。
ここからは自力で頑張ってみます。

Sub ORA()

    Dim k As Long
    Dim s As String,z As String
  
    For k = 1 To Cells(1, 1).End(xlDown).Row
        s=Cells(k,6),Value
        z=Cells(k,8),Value
        test=Mid(s,34,8)'位置確認用

        If Mid(s,34,13)="SP10 ORA-0000"Or Mid(s,34,13)="SP20 ORA-0000"Or _
        Mid(s,34,13)="SP30 ORA-0000"Or Mid(s,34,13)="SP40 ORA-0000" Then
        u=Mid(s,39,10)

            Select Case u
            Case "ORA-000060"
                If z ="台帳に記載されている為、対処不要"

                Else

                Rows(k).interior.Colorindex=4
            
                End If
            End Select
        
        ElseIf Mid(s,34,10)="ORA-000060" Then
        v=Mid(s,34,10)

            Select Case v
            Case "ORA-000060"
                If z ="台帳に記載されている為、対処不要"
        
                Else

                Rows(k).interior.Colorindex=4
            
                End If
            End Select
        
        ElseIf Mid(s,34,4)="SP10" Or Mid(s,34,4)="SP15"Or Mid(s,34,4)="SP20"_
        Or Mid(s,34,4)="SP25" Or Mid(s,34,4)="SP30" Then        
        o=Mid(s,39,8)
        oo=Mid(s,39,9)

            Select Case o
            Case "ORA-0001","ORA-0002","ORA-0003","ORA-0004","ORA-0005"_
              ,"ORA-0006","ORA-0007","ORA-0008","ORA-0009","ORA-0010"

                If z ="台帳に記載されている為、対処不要"
        
                Else

                Rows(k).interior.Colorindex=4
            
                End If
            End Select

            Select Case o
            Case "ORA-00001","ORA-00002","ORA-00003","ORA-00004","ORA-00005"_
              ,"ORA-00006","ORA-00007","ORA-00008","ORA-00009","ORA-00010"

                If z ="台帳に記載されている為、対処不要"
        
                Else

                Rows(k).interior.Colorindex=4
            
                End If
            
            Case Else
            test2=Right(z,4)'確認用
                If Right(z,4)="殿に連絡" Then

                Else

                Rows(k).interior.Colorindex=4

                End If
            End Select
            
        ElseIf Mid(s,34,24)="ORA00900:内部エラー・コード,品数:" Or _
        Mid(s,34,42)="ORA-00600: internal error code.arguments:"Then        
        l=Mid(s,39,8)
        ll=Mid(s,39,9)

            Select Case l
            Case "〔4444〕","〔4444〕","〔4444〕","〔4444〕","〔4444〕"_
              ,"〔4444〕","〔4444〕","〔4444〕","〔4444〕","〔4444〕"

                If z ="台帳に記載されている為、対処不要"
        
                Else

                Rows(k).interior.Colorindex=4
            
                End If
            
            Case Else


▼rabbit さん:
>▼カタツムリ さん:
>>一度、確認させていただきます。
>確認結果はどうだったでしょうか。
>コードを取得できれば、あとは用無しですか?

【72392】Re:複雑でよくわかりません
発言  ジェントルマン  - 12/7/30(月) 16:53 -

引用なし
パスワード
   >リアルな世界では、他人に質問して回答を得て、
>結果確認しますね、と言ったまま、
>返事をせずに放置していたらまずいですよ。単なる事実確認ですから。

その割には、貴方は、最後の意見に何も
言葉をあげないのですね。

やはり、忙しかったのですね、
確認できて安心しました。
是非、自力で頑張ってください。

リアルの世界では普通この様な言葉を返しますけど・・・

自力で頑張りますと言ってるのに、
あっそう、勝手にやればって無視しますか?

今回の様なやりとりが、
メールでのやり取りだったとしたら、
相手が見ている見ていないに関わらず、
普通、今みたいな返信しますよね。

随分とリアルな世界にこだわっていましたが・・・

というか、あれからもう見ていないのでしょうね多分。
忙しいとは言っても、もう、最後のレスから大分たってますからね。
書けないわけないと思いますが・・・

>あなたとは意見が別なようですが、あなたと私は別人格なので、
>それは致し方ありません。

それを言ってしまえば、rabbitさんとカタツムリさんも別人だから
違うのでは・・・
だったら、同じように、返事が来なくても致し方ありませんよね。

結局rabbitさんは、
全て、自分の都合でしか書いていないと思いますよ。

>意見を書き込むことはあなたのご自由ですが、
>質問内容以外の件について、これ以上返答する積もりはありません。
>あしからず。

リアルでも、この様な書き方はしませんが普通。

顔が見えない人や面識が無い人へ、
手紙でも「あしからず」とは書きません。

顔がみえないからこそ、普通は、丁寧な言葉遣いをします。

「ご了承願います」や「よろしくお願いします」が正しいのでは・・・

何度も言いますが、
随分とリアルな世界にこだわっていましたので・・・

自由だとおっしゃられてますので、
遠慮せずに、私の意見として述べさせて頂きました。
ただし、私はこれ以上述べる事はありません。

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