Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


75395 / 76738 ←次へ | 前へ→

【5779】コンボボックスで未使用の番号を代入する方法
質問  まこさん  - 03/5/30(金) 11:32 -

引用なし
パスワード
   ご覧いただきありがとうございます。
下のような表がります。分類をcombobox1、番号をcombobox2に見立てます。
combobox1で選択した分類に従って未使用の番号を頭(1)から検索し使用していない番号をcombobox2に入れたいのですが、既使用番号が少なければいいのですが、何百もなると検索に時間がかかってしましまいます。何か良い方法があればご教授いただきたのですが。関数とかで探せればそれもいいのですが。ちなみに、私が現時点で考えたマクロを下段に載せています。よろしくお願いします。

(表)
分類 番号
1  1
1  2
1  3
2  1
2  3

※この表でいくと、COMBOBOX1で1を選択したら、自動で4がCOMBOBOX2に入り、COM1で2を選択したらCOM2に2が入るようにしたいのです。ただし、例えばAの既使用番号が500番まで埋まっていたりしたら検索に時間がかかってしまいます。以下は、私が現時点で作成したマクロです。

SUB MACRO()
BANGOU = 0
REPEAT1:
 GYOU = 1
 FLG = 0
 FLG2 = 0
 BANGOU = BANGOU + 1
 BANCHIA = "Sheet1!A" & GYOU
 DO UNTIL FLG = 9 OR FLG2 = 9
  IF RANGE(BANCHIA) = "" THEN
   FLG2 = 9
  ELSE
   IF RANGE(BANCHIA).VALUE > COMBOBOX1.VALUE THEN
    FLG2 = 9
   ELSE
    IF RANGE(BANCHIA).VALUE = COMBOBOX1.VALUE THEN
     BANCHIB = "Sheet1!B" & GYOU
     IF RANGE(BANCHIB).VALUE = BANGOU THEN
      FLG = 9
     END IF
    END IF
    IF FLG <> 9 THEN
     GYOU = GYOU + 1
     BANCHIA = "Sheet1!A" & GYOU
    END IF
   END IF
  END IF
 LOOP
 IF FLG2 = 9 THEN
  COMBOBOX9.VALUE = CSTR(BANGOU)
 ELSE
  IF FLG = 9 THEN
   GOTO REPEAT1
  ELSE
   COMBOBOX2.VALUE = CSTR(BANGOU)
  END IF
 END IF
END SUB

3 hits

【5779】コンボボックスで未使用の番号を代入する方法 まこさん 03/5/30(金) 11:32 質問
【5794】Re:コンボボックスで未使用の番号を代入する... Kein 03/5/30(金) 23:40 回答
【5809】Re:コンボボックスで未使用の番号を代入する... まこさん 03/6/2(月) 11:12 お礼

75395 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free