
VBをはじめて2週間の新人です。よろしくお願いします。
早速質問させていただきたいのですが、
データグリッドに入力した列の値(複数)をすべて比較するというプログラムを作りたいのですがどうすればいいのかわかりません。
たとえばデータ列に[A][B][C][D][E]・・・という風にどんどん入力されていき、その値を比較、[A]=[B],[A]=[C],[A]=[D],[A]=[E],
[B]=[C],[B]=[D],[B]=[E]・・・・
という感じですべての値が同一にならないよう(同一の場合はエラーを発生)にしたいのです。
ループを使うのだろうなぁとはおもうのですが、うまくいきません。
お助けいただけますでしょうか、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
VBって要するにbasic、私だとデータを格納するのにdimensionを使います。
DATA1(100), ERR(100)
という風に定義します。数字か文字かは$の有無などで分ける必要があります。
データ列を読み取っていき、DATA1に入れていきます。入れたデータの数をIMAXと定義します。
比較は、
FOR I=1 TO IMAX-1
FOR J=I+1 TO 100
IF DATA1(I)=DATA1(J) THEN ERR(J)=1
NEXT
NEXT
このERRデータをある列に書き出します。比較のステップはこれ以上少なくは出来ません。上は基本形で、変形はいろいろに可能です。
No.4
- 回答日時:
コントロールはDatGridなのかDataGridViewなのかどちらでしょう?
DataGridViewならば
Sub Button1_Click(引数省略)
dim n as intger, m as integer, v as integer
m = DataGridView1.CurrentCell.ColumnIndex
'入力データがIntegerと仮定 適宜修正してください
v = CType(DataGridView1.CurrentCell.Value, Integer)
' 現在の行の左端のセルから右端までなめる
for n = 0 to DataGridView1.CurrentRow.Cells.Count-1
' 現在選択されているセル以外をチェック
if n <> m then
if DataGridView1.CurrentRow.Cells(n).value = v then
' 重複データが見つかったのならそのセルを選択して
' Forループを抜ける
DataGridView1.CurrentCell = _
DataGridView1.CurrentRow.Cells(n)
exit for
end if
end if
next
End Sub
No.1
- 回答日時:
VBにもいろいろなバージョンが存在します
VB5.0/6.0、 VB.NET2002/2003、VB2005/2008
WindowsアプリなのかWebアプリなのか
データの確定はいつするのか ... キー入力時に随時行うのか、ボタンなどでチェックイベントがあるのか
エラーの発生方法 ... メッセージボックスで再入力を促す、文字の色を変更して再入力を促す、セルの移動ができないようにする
現在やっている処理があるならそのコードを提示してみましょう
この回答への補足
redfox63より指摘がありましたので補足させていただきたいとおもいます。
使用しているバージョンはVB2005です。
WINDOWSアプリでボタンを押したときに重複している内容が無いかチェックしたいとおもっています。
重複データがある場合にはその旨のメッセージを表示し、処理を中断させ、元の入力画面に戻りたいとおもいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Word(ワード) 数値に差のあるデータを分かりやすく比較する方法について。医療現場におけるヒヤリハットの発生件数を事例 3 2022/07/18 14:24
- 統計学 統計学、エクセルがわかりません!解答と詳しい解説をお願いします! (1)それぞれの地域別に記述統計量 9 2022/08/21 16:30
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- Visual Basic(VBA) セルの値を比較してセルの値の色を変更するには 4 2022/05/22 20:28
- その他(プログラミング・Web制作) awkの文字列比較はPOSIXロケールまたはCロケールにおいてバイナリ値の比較に使えるか gawkな 1 2023/04/22 09:21
- Java Java 南京錠 2 2023/02/04 11:46
- Visual Basic(VBA) VBAのifで 4 2023/05/16 14:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
VBA実行後に元のセルに戻りたい
-
Application.Matchで特定行の検索
-
TODAY()で設定したセルの日付...
-
i=cells(Rows.Count, 1)とi=cel...
-
エクセルのシート上でセルのデ...
-
セル内で改行された文字列をセ...
-
Excel VBAで、 ヘッダーへのセ...
-
VBAで自動集計(特定セルコピー...
-
セル色なしの行一括削除
-
EXCELで変数をペーストしたい
-
VBA・リストボックスの内容をセ...
-
特定のセルが空白だったら、そ...
-
”戻り値”が変化したときに、マ...
-
Excel VBA 計算式を代入するには?
-
値の比較方法
-
Excelで指定した日付から過去の...
-
テキストボックスに入力したデ...
-
特定の文字を条件に行挿入とそ...
-
VBからEXCELのセルの値を取得す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
特定のセルが空白だったら、そ...
-
VBA実行後に元のセルに戻りたい
-
【Excel VBA】指定行以降をクリ...
-
任意フォルダから画像をすべて...
-
【Excel】指定したセルの名前で...
-
VBAでセルをクリックする回...
-
【VBA】シート上の複数のチェッ...
-
EXCELのVBA-フィルタ抽出後の...
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
”戻り値”が変化したときに、マ...
-
ExcelのVBAで数字と文字列をマ...
-
VBA ユーザーフォーム ボタンク...
-
Excel VBA マクロ ある列の最終...
-
Excel VBA、 別ブックの最終行...
おすすめ情報