Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Home : Microsoft 365)
全列5行目以降の()が無いセルの集計数
投稿日時: 23/03/05 08:19:30
投稿者: ヘクセル

各列5行目以降のデータに()が含まれていないセルの集計数をメッセージBOXに集計してください。

投稿日時: 23/03/05 08:32:09
投稿者: ヘクセル

すいません。追加です。
1文字しか入っていないセルは除外してください。

回答
投稿日時: 23/03/05 12:30:18
投稿者: taitani
投稿者のウェブサイトに移動

途中まででもよいので、コードを提示してください。
あと、サンプルデータも。
ついでに、なぜ上から目線なのでしょうw(〜してくださいって。。。)

投稿日時: 23/03/05 14:08:25
投稿者: ヘクセル

まだ何も記述していません。
A列〜HXP列および最下行は約4000行目まで使用しており30万件以上のデータが不規則行で散在してありますので
出来れば超高速処理で何卒宜しくお願い申し上げます。
画面更新停止だと速度に変化がない可能性があります。

回答
投稿日時: 23/03/05 14:22:13
投稿者: taitani
投稿者のウェブサイトに移動

うーん、サンプルデータが欲しいですね。
例えば、、、
 

日付	データ		結果
3月1日	こんにちは(Hello)		カウントしない
3月2日	さようなら*Goodby		カウントする
3月3日	テスト(Test		カウントする
3月4日	今日(Today)		カウントしない

 
のような。
1文字、というのは、「(」だけとか、「)」だけを指すのか。
言葉だけでは、なかなか他人には伝わりずらいかと。

投稿日時: 23/03/05 15:23:10
投稿者: ヘクセル

  A列        B列        C列・・・・・・・・・・以降HXP列まで
1
2
3
4
5                  Z
6あいうえお   指すせ(何ぬねの)  ゼット
7            
8かきこ(さし)

・ 
 
各列1行目〜4行目はカウントを除外してください
1文字とは五十音、漢字、アルファベットが1字のみで一桁の数字は無いです
 
カウントする→()か含まれていないセルで、かつ1文字以上のセル
カウントしない→()か含まれているセルで、かつ1文字のみのセル
各列とも1行目から連続して最下行まで入力されていますが途中には空白セルはありませんが各列の最終行は色々と変化に富んでいます
以上ですが御教示お願い申し上げ奉ります。

回答
投稿日時: 23/03/05 16:02:28
投稿者: taitani
投稿者のウェブサイトに移動

VBA でやりたいとなると、相当数のセルを確認するのであれば、時間がかかるのは仕方ないのかと。。。
’---------------------
一応作成してみましたが、私の PC のスペック (Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz 1.80)で、
約 5分位でした。。。
※ 4000行×HXP列のデータ
’---------------------

Option Explicit
Sub test_20230305()
    Dim SCnt1 As Long
    Dim lngRow As Long, lngCol As Long
    Dim LastRow As Long, LastCol As Long
    Dim Temp1 As Range
    
    
    LastRow = Cells(5, 1).End(xlDown).Row
    LastCol = Cells(5, 1).End(xlToRight).Row
    
    For lngRow = 5 To LastRow
        For lngCol = 1 To LastCol
            Set Temp1 = Cells(lngRow, lngCol).Find("(*)")
            If Temp1 Is Nothing Then
                SCnt1 = SCnt1 + 1
            End If
        Next
    Next
    
    MsgBox SCnt1
End Sub

 
他の方の回答を待ってみましょう。(私の勉強も含めw)

回答
投稿日時: 23/03/05 16:53:18
投稿者: taitani
投稿者のウェブサイトに移動

<追記>
(忘れてましたが)一度配列に保管したほうが早いですね。

投稿日時: 23/03/05 16:57:21
投稿者: ヘクセル

回答ありがとうございます
速度はこれで大変満足です
カウント数は5241986と集計されました
あとでこの数値が正しいのか凄くめんどくさいですが各列の集計を出して後日検証してみたいと思います。
カウントする条件に勘違いがなければOKですのでありがとうございました。