• ベストアンサー

リストボックス内の重複したものを削除

初心者です。 リストボックス内で A--- B--- C--- D--- E--- B--- F--- C--- という行数で表示しているものを onclickで重複しているBとCとの行数を消したいのですが どうすればいいのでしょうか? 消すものは6、8行目のBとCです。 実際は行がもっと多いので for文で上から見て消していくというようにしたいです。 困ってます。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • xruz
  • ベストアンサー率50% (72/143)
回答No.1

こんにちはmikaninuさん、xruzです。 こんな感じでよかったでしょうか? (Ie5.5sp2、NN4.75、NN6.1動作確認済み) <html> <head> <title>select001</title> </head> <script Language="JavaScript"> <!-- function lstClear() { var optValue=new Array(); var optIndex=""; var j=0; with(document.frm.sel) { for(var i=0;i<options.length;i++) { if(optIndex.indexOf(options[i].text,0)==(-1)) { optValue[j++]=options[i]; optIndex=optIndex+"\t"+options[i].text; } } options.length=optValue.length; for(var i=0;i<optValue.length;i++) { options[i].text=optValue[i].text; options[i].value=optValue[i].value; } } } //--> </script> <body> <form method="post" name="frm"> <select name="sel" size="1"> <option value="a">a--- <option value="b">b--- <option value="c">c--- <option value="d">d--- <option value="e">e--- <option value="b">b--- <option value="f">f--- <option value="c">c--- </select> <input type="button" value="Restruct" onClick="lstClear();"> </form> </body> </html> がんばってくださいね。

mikaninu
質問者

お礼

ありがとうございました。 これでやってみます。

関連するQ&A

  • リストボックスの値取得方法について

    VBAでリストボックスを使用しています。リストボックスの中には、A,B,C,D,Eと表示されています(カンマは行とします。 つまりリストボックスには5行表示されています)。選択はされていない状態です。この状態でボタンを押すことにより ループで各行の値を取得したいと思っています。listcountを利用してlistcountの数までループをまわし、各行の値を 取得したいです。値というのは、A,B,C,D,Eです。この値を配列なり変数なりにいれたいのです。 どのリストボックスのプロパティを利用すれば、選択されていないリストボックスの各値を取得することができるでしょうか?

  • 入力値をListボックスに表示させたい。

    (仕様1) ユーザーフォーム1でテキストボックス1~5に 入力した値をListボックスに表示させたい。 例えば textbox1=A,textbox2=B,textbox3=C・・・ と入力されたら、 A B C D E のように順に横方向一列に表示させるようにしたいです。 (仕様2) これをコマンドボタン1を押す度にリストボックス1に新しく追加されていく 様にしたいのですが、できますでしょうか。 例えば、 A B C D E A C D B E (テキストボックスに入力後ボタン1を押す) A C B D E (テキストボックスに入力後ボタン1を押す)

  • 重複するデータの削除と抽出方法

    はじめまして。 区分   ランク 001  A 002  B 002  B 003  C 004  D 005  E 005  F このようなデータを以下の条件で削除し抽出する方法を教えていただけないでしょうか。 ・区分が重複しているデータを削除したい。 ・しかし区分が重複していてもランクが異なる場合は削除しない。    ↓ 001  A 002  B 003  C 004  D 005  E 005  F エクセルとアクセス両方での方法を教えていただければ有難いのですが・・・(エクセル、アクセスとも初心者です) わかりにくい質問ですがよろしくお願い致します。

  • 簡易リストボックス

    http://okwave.jp/qa/q8161154.html で質問したものです。 行で分けたのですが、は行が200近くあり、行数だけでは難しいとおもい、 VBAでやる頭2文字でリストが表示できるようにしたいとおもいます。 いろいろと調べたのですが、 http://www.max.hi-ho.ne.jp/happy/YNxv98314.html が参考になるかとおもったのですが、VBAは全然わかりません。 頭文字を頭2文字に変更して教えていただけますでしょうか?

  • [Access2003]コンボボックスのプロパティの「リスト行数:8」について

    昨日、リスト行数について分からなくて質問しました。アドレスは、http://okwave.jp/qa4858817.htmlです。リスト行数が8以下だとそのまま表示されるということは、理解できました。 質問1:http://okwave.jp/qa4858817.htmlで質問したことなんですが、参考書(下記のコンボボックスは、著作権の関係もあり、商品名の名前は変えてあります)を見たら・・・・ コンボボックス: A みかん B メロン C パイナップル D なし 回答してくださった方のアドバイスを見ると、【リスト行数が8以下だとそのまま表示される】のであれば、上記の場合、「リスト行数:4」ではないかなと思いました。参考書の「リスト行数:8」が間違っていて、「リスト行数:4」が正解かなと思いましたが、この場合、4が正しいのでしょうか? 質問2:回答してくださった方のアドバイスを見ると、「リスト行数:8」と表示される場合、8行のみが表示され、超える部分はスクロールすると教えてくださいました。(パソコン教室では、Access2003の勉強をしていますが、家庭の事情により、Access2003のソフトは、持っていないのでよく分からないです。) たぶんですが、リスト行数が8行以上の場合は、コンボボックスの横にスクロールバーが表示されてスクロールバーを使用して、リストを移動させながら関係ある商品名などを選択して入力するというイメージがあるのですが…..。 「リスト行数:8」と表示される場合、8行のみが表示され、超える部分はスクロールするということについて具体的に教えてもらえないでしょうか?

  • リストボックスの文字色を変更

    初心者です。 リストボックスAの値をボタンクリックによってリストボックスBに移すとき、 適当な値の文字色を変更したいのですができるでしょうか? valueを1と0に区別してボタンクリックで1のものだけ色をつけてリストボックスに追加されるようにしたいです。 教えてください。説明が下手かもしれませんが、よろしくお願いします。 ()はvalue A(0)    A B(0) →  B  C(1)    C(←この文字色を変化) D(0)     D

  • VBAのリストボックス連動がうまく表示されません。

    例えば、エクセル表に下記のようなデータが入っているとします。 A列は項目であり、B列は項目内容数(D列以降の項目数)、D列にはA列項目の内容が入っています。しかし、この列は変動する為、変数で指定しています。 これをリストボックス1で、まずA列の内容を表示させて、その中で選んだ項目をリストボックス2でD列以降の行内容を表示させ、リストボックス2の値を取得したいのですが、リストボックス2がうまくい表示できません。 リストボックス1では .RowSourceを使ってセル指定して表示させています。 このようなケースがuserformに多数あり、for~の処理はできるだけ避けています。 例えばUserForm_Initialize()で次の通りです。 With ListBox1 .ColumnCount = 1 .BoundColumn = 1 .RowSource = Worksheets(wksheet).Range(Cells(2, item_No), Cells(item_max_cnt, item_No)).Address(External:=True) VBA初心者で恥ずかしい質問ですが、どなたかご教示宜しくお願い致します。m(_ _)m A列_B列__D列_E列_F列_G列_H列 … a_3__あ_い_う b_1__か c_5__さ_し_す_せ_そ

  • エクセルマクロリストボックスの作成方法について

    最近、マクロを勉強し始めたばかりで困っています。 【質問内容】 ダイアログを作成し、リストボックスからリストを作成する方法についてですが、例えばリストボックスが2つあり (1)リストボックス1では、「A、B」が選択できる。 (2)(1)で「A」を選択するとリストボックス2では「C、D」が選択できる。 (3)(1)で「B」を選択するとリストボックス2では「E、F」が選択できる。 といった、エクセルで言えば入力規則のindirect関数のような設定方法についてお教えいただけないでしょうか? 恐れ入りますがよろしくお願いいたします。

  • [Access2003]コンボボックスのプロパティの「リスト行数」について

    今、Access2003のフォームのコントロールの作成について勉強しています。『コンボボックスのプロパティ』の「すべて」の中の「リスト行数」が分からないです。 参考書(下記のコンボボックスは、著作権の関係もあり、商品名の名前は変えてあります)を見たら・・・・ コンボボックス: A みかん B メロン C パイナップル D なし と表示されていました。 リスト行数:表示する一覧の行数を設定しますとあり、リスト行数のところが「8」となっていました。何で「8」なのか分からなかったので、不安になってインターネットでリスト行数について調べてみました。上記のような形式のコンボボックスの場合だと、リスト行数が「4」ではないかなという印象を受けました。 ◎参考書の「8」が違っていて、正しくは「4」なのでしょうか?それともこの場合、参考書がもし「8」で正しかったら、何で「8」なのでしょうか?

  • 期間内での重複の確認

    いつもお世話なります。 WINDOWS7 EXCELL2010です。 下図を参考に A列 ユーザ定義 mm/dd B列 ユーザ定義 mm/dd 各列の数式は E2 =A2&C2&D2 F2 =B2&C2&D2 G2 =IF(D2="","",IF(COUNTIF($E$2:E2,E2)>1,"重複","")) H2 =IF(D2="","",IF(COUNTIF($F$2:F2,F2)>1,"重複","")) I2 =IF(D2="","",IF(COUNTIF($E$2:F2,E2)>1,"重複","")) 条件付書式 範囲はA2:B10 =$I2=”重複” 紫 =$G2=”重複” 薄青 =$H2=”重複” 薄ピンク という具合に「入所(A列)、退所(B列)」日での重複はセルの色で確認できますが 6の行は「入所、出所」日は対象にはなりません。 重複のチェックから漏れます。 この期間内の重複を防止したいのですが何かいい方法をご教示いただけませんでしょうか。 よろしくお願いします。

専門家に質問してみよう