Excelで、以下のVBAでB列とC列のデータを比較・照合し、B列のデータと一致するデータはC列に、照合の結果一致しなかった値を末尾に書き出すという処理をしています。
データ量が増え、対象の行数「30000」を「50000」に変更したいのですが、単純に「30000」を「50000」に変更したところ、添付画像(実行時エラー&デバッグ)のようなエラーが発生し、処理できませんでした。
前任者が作成したフォーマットを引き継ぎ使用していますが、VBAの知識がないため、対象の行数を「30000」を「50000」にするための修正箇所を教えていただけましたら幸いです。
どうぞよろしくお願いいたします。
▼▼▼▼▼▼▼現在使用中のVBA▼▼▼▼▼▼▼
Sub ボタン1_Click()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'変数宣言
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'縦軸ループ用変数
Dim iY As Integer
'横軸ループ用変数
Dim iX As Integer
'ループ用カウンタ
Dim iCounter As Integer
'位置保持用カウンタ
Dim iYCounter As Integer
'並び変え用配列
Dim strArrayData(1, 30000) As String
'文字列整理用汎用変数
Dim strTmpString As String
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'変数初期化
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'3行目の値
iY = 3
'B列の値
iX = 2
'汎用文字列
strTmpString = ""
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'メイン処理
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'データを取り込む
'ループ処理
For iY = 3 To 30000
'データ取得
strTmpString = Trim(Cells(iY, iX).Value)
'データチェック
If strTmpString <> "" Then
'値が入ってる場合のみデータを格納する。
strArrayData(0, iY - 3) = strTmpString
End If
Next iY
'比較対象データを取り込む
iX = 2
For iY = 3 To 30000
'データ取得
strTmpString = Trim(Cells(iY, iX + 1).Value)
'データチェック
If strTmpString <> "" Then
'値が入ってる場合のみデータを格納する。
strArrayData(1, iY - 3) = strTmpString
'右側の行の値を消す。
Cells(iY, iX + 1).Value = ""
End If
Next iY
''''''''''''''''''''''''''''''''''''''''
'比較作業開始
''''''''''''''''''''''''''''''''''''''''
'ループしてチェック
For iY = 3 To 30000
'値が空の場合は処理を抜ける
If strArrayData(0, iY - 3) = "" Then
'カウントの保持
iYCounter = iY + 1
'Forループを抜ける
Exit For
End If
'二重ループにてチェック
For iCounter = 0 To 30000
'値の比較
If strArrayData(0, iY - 3) = strArrayData(1, iCounter) Then
'同じ値で有れば左の元の値の横に並べる
Cells(iY, iX + 1).Value = strArrayData(1, iCounter)
'配列の中の値を消去する。
strArrayData(1, iCounter) = ""
End If
Next iCounter
Next iY
'照合出来なかった値を末尾に書き出す。
For iCounter = 0 To 30000
'データ吐き出し
If strArrayData(1, iCounter) <> "" Then
'値が有る場合のみ値出力
Cells(iYCounter, iX + 1).Value = strArrayData(1, iCounter)
'排出用カウンタインクリメント
iYCounter = iYCounter + 1
End If
Next iCounter
End Sub
No.1ベストアンサー
- 回答日時:
integerと言うのは2バイト整数で、正の整数値は0~32,767まで。
40,000はそれを超えるでしょ?
これはコンピュータを扱う場合の基本の基なんです。
解決するには4バイト整数宣言をする。
integer⇒long に宣言を変更する。
t_fumiaki様
早々のご回答ありがとうございます。
お休みをいただいており、ご返信遅くなり申し訳ありません。
前任者から引き継いだフォーマットを使用しており、VBAやコンピューターの知識が無いため、どこをどう修正すればよいのかわからず、大変助かりました。
integer⇒long に変更してやってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
尿検査前日に自慰行為した時の...
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
尿検査の前日は自慰控えたほう...
-
精子が黄色?
-
中出しをするとお腹が痛い・・・。
-
EXCELで条件付き書式で空白セル...
-
excelでsin二乗のやり方を教え...
-
これって喉仏ですか? 私は女性...
-
口の中に黒い血の塊
-
納豆食べた後の尿の納豆臭は何故?
-
2つの数値のうち、数値が小さい...
-
エクセル指定した範囲からラン...
-
筋トレするとチンコが縮んじゃ...
-
変な話しになります。尿検査で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報