Excel VBA 質問スレ Part77

■ このスレッドは過去ログ倉庫に格納されています
2022/07/17(日) 07:07:35.59ID:tS4zKdphH
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
Excel VBA 質問スレ Part76
https://mevius.5ch.net/test/read.cgi/tech/1651339421/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
738デフォルトの名無しさん (ワッチョイ 124f-EPsI)
垢版 |
2022/09/28(水) 15:15:27.03ID:n6LgYqsE0
>>736
恐らく出来ない。
ただ、Select Case の後の文字列の部分をTrueとして、
A10:A100の中に該当文字列が有った場合、
Trueを返す関数を作成して、Case文の後ろに記載して
その条件に当たったかを判別して、Case文の下に
その条件下での処理を記載することは可能。

Caseにある条件のA10:A100にとある文字列が
有った場合とB10:B100にとある文字列が
有った場合と下に続く処理が同じなら、
先程言った関数の引数に対象範囲と検索対象文字列を
持たせておけばCase文を使う必要すら無い。
戻り値がTrueかFalseかをIf文で判断すれば良い。

その辺は実際の状況に合わせて上手く作ってくれ。
2022/09/28(水) 16:15:51.79ID:vR69ytL90
select caseにtrue??
知らなかったわ何それ??
2022/09/28(水) 18:26:27.19ID:Pxqx/4k10
Do
With
End With
Loop

よりも

With
Do
Loop
End With

の方が計算が早い(PCにとっては楽)と考えてよいでしょうか
741デフォルトの名無しさん (ワッチョイ 12c7-qdT0)
垢版 |
2022/09/28(水) 19:01:46.26ID:8l5UWazH0
>>736
こんな感じ?
https://i.imgur.com/wuSExDf.png
2022/09/28(水) 19:28:29.47ID:Aad51sjLa
>>736
Private Function F(R As RangeRange, S As String) As Boolean
Dim C As Range
For Each C In R
If C.Value = S Then
F = True
Exit Function
End If
Next
F = False
End Function
...
Select Case True
Case F(Range("A1:100"), 文字列A)
...
Case F(Range("B1:100"), 文字列A)
...
Case ...
End Select
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況