はじめまして
VB6.0で作業しています。
今プログラムを作成中なのですが、
データが次のように並んでいて、
74 61 61 61 61 61 61 61 51 58 58 29 16 21
74 61 61 61 61 61 61 61 51 57 56 15 14 18
74 61 61 61 61 61 61 61 51 56 19 14 14 19
74 61 61 61 61 61 61 61 51 34 13 13 13 17
74 61 61 61 61 61 41 14 14 19 19 19 19 24
74 61 61 61 61 61 49 15 15 19 19 19 20 24
74 61 61 61 61 61 51 14 14 19 19 19 20 24
と並んでいて、それぞれ1行ずつ30以下の数字をカウントしてそれぞれ書きだしていきたいのですが
どうしたらいいのでしょうか???
(たとえば、今の場合だと1行目は3
2行目は3
3行目は4となるように)
誰かよろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは
質問を見てしまったので、つい書きこんでしまいました。
このプログラムを作成する意図は何なのでしょうか?
どうしてこんな質問をしているのか意図がわかりません。
プログラムの知らない人が仕事に必要なので質問したようにも思えないですし、
プログラムの勉強の為の質問にしては、簡単すぎます。
教科書を見直した方がいいと思います。
このプログラムが自分で書けないとしたら、回答を見ても分からないことはありませんか。
一番、気になるのはこのデータはどうゆう形で受け取るのでしょうか。
例えば、このデータがテキストファイルに有って読み込むとしたらその処理を作るのが一番大変な所になります。
既にデータが読み込まれているとしたら。どうゆう変数にデータが入っていますか?
自分の勝手な想像で失礼な事を言っていたらすみません。
No.2
- 回答日時:
プログラム作成の意図はともかくとして...。
(意図は、ご本人の都合ですので)
単純に考えれば、読み込んだ数字の表を二次元
の配列の格納して、ループしながら比較し、見
つけた位置を別の配列に書き出す。
という処理を行いたいわけですよね?
こういう処理を「効率良く行うには?」という
事でしょうか。
バイナリソートのロジックを応用して、単純に
ループするよりは高速化できると思いますが...。
No.3
- 回答日時:
こんにちは
入力と出力の形式がわからないですが、作ってみました。
空白で区切られた行の分割でしたら、VB6ならSplitが使えます。
空白文字で分割して配列に入れます。
行単位の読込み部分?は、自分で頑張ってください。
出力はリストボックスへの表示にしてみました。
では!
'----------------------------------------
'フォームにList1リストボックスと、Command1ボタンを配置してください!
'
Private Sub splitGyo(ByVal zZ1 As String, ByVal nLi As Long)
'■ 1行をばらして、30以下の数値をカウントしてリストボックスに出力する
Dim zZ2() As String
Dim nN1 As Integer
Dim nN2 As Integer
'空白で区切ったデータを配列に入れる
zZ2() = Split(zZ1, " ")
nN2 = 0 'カウンタ
For nN1 = 0 To UBound(zZ2) '配列の終わりまで
If IsNumeric(zZ2(nN1)) Then
'数値なら
If CSng(zZ2(nN1)) <= 30 Then
'30以下ならカウントアップする
nN2 = nN2 + 1
End If
End If
Next
'リストボックスに書き出す
List1.AddItem nLi & " 行目 : " & nN2 & " 個 "
End Sub
'----------------------------
Private Sub Command1_Click()
'■ 行を設定して呼び出す
' ファイルだったら Line Input で1行ずつ読み込むように!
Dim zGyo As String
Dim nLine As Long
'例
nLine = 3 '何行目か(行カウンタにする)
zGyo = "74 61 61 61 61 61 61 61 51 56 19 14 14 19" 'データ
’「行のデータ」と、「何行目か」を渡す
Call splitGyo(zGyo, nLine)
End Sub
'---------------------------------
以上
No.4
- 回答日時:
データをSplit()で分割してしまえば簡単ですよ。
Sub test()
Dim strData As String 'ここにデータを入れて
Dim strDivided() As String '分割後のデータをここに書き出す。
Dim i As Long
Dim Ct As Long 'カウンタ
strData = "74 61 61 61 61 61 61 61 51 58 58 29 16 21"
strDivided = Split(strData, " ")
Ct = 0
For i = 0 To UBound(strDivided)
If Val(strDivided(i)) <= 30 Then
Ct = Ct + 1
End If
Next i
MsgBox "30以下は" & Ct & "個。"
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- Excel(エクセル) Excelでの複数条件のカウントについて 1 2022/09/25 07:40
- その他(プログラミング・Web制作) パイソンのプログラミングについての質問です 2 2023/05/22 12:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのマクロについて教えてく...
-
Vba 実数および実数タイプの変...
-
ユーザーフォームに別シートか...
-
VBA レジストリの値の読み方に...
-
エクセルVBAについて
-
VBA listBoxから
-
ExcelのVBAコードについて教え...
-
VBA 複数条件の分岐処理の上手...
-
ExcelのVBAです。フォルダ内の...
-
VBAの計算で@が出てしまう件
-
VB.net(VB)で、フォームにExcel...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBAの質問になります Userform内で
-
VBAの質問になります メッセー...
-
Excel マクロについての相談
-
Vba SelStart、SelLen教えてく...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報