• ベストアンサー

リストボックス項目の順番を入れ替える方法

リストボックス内に10個ほどの項目があります。 ある項目を選択し、ボタンAをクリックすると、その項目が1つ上に移動し、 ボタンBをクリックすると、その項目が1つ下に移動するようにしたいのです。 ウグイス ホトトギス フラミンゴ ↓ フラミンゴを選択し、ボタンAをクリックします。 ↓ ウグイス フラミンゴ ホトトギス 使用ツールはVB.NET2003です。 テキストファイルから読み込んだデータをリストボックスに入れ、順序を入れ替えてから、上書き保存しようとしております。 何か良いアイディアありましたら、是非教えてください。 どうぞよろしくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

こんな感じかと思います ---------------------------------------------------------------- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '選択項目を下げる Dim pos As Integer, repPos As Integer Dim wk As String pos = ListBox1.SelectedIndex() If pos <> -1 And pos < ListBox1.Items.Count - 1 Then repPos = pos + 1 wk = ListBox1.Items.Item(repPos) ListBox1.Items.Item(repPos) = ListBox1.Items.Item(pos) ListBox1.Items.Item(pos) = wk ListBox1.SelectedIndex = repPos End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '選択項目を上げる Dim pos As Integer, repPos As Integer Dim wk As String pos = ListBox1.SelectedIndex() If pos > 0 Then repPos = pos - 1 wk = ListBox1.Items.Item(repPos) ListBox1.Items.Item(repPos) = ListBox1.Items.Item(pos) ListBox1.Items.Item(pos) = wk ListBox1.SelectedIndex = repPos End If End Sub

dur606
質問者

お礼

お早いお答えありがとうございます。 早速試したところ、完全にイメージした通りの動作をしました。 この度は誠にありがとうございました。

関連するQ&A

  • リストボックスの項目削除

    すいません、以下の処理でこまっております。 ユーザフォームですがリストボックスで項目を指定して、ダブルクリックで削除をしたいのですがうまくできません。 <例> リストボックス a b c 1.aの項目をクリックして選択する。 2.ダブルクリックするとaのみ削除 ※aをただのクリックのみなら削除できるのですが選択してダブルクリックになるとできません。 まったくできません。 どなたかご教授をお願いします。 よろしくお願いします。

  • リストボックスへの項目追加

    すでに存在するリストボックスに、新しく項目を追加することはできるのでしょうか? VBアプリでよくあるパターンなのですが、以下のような仕組みをWEB上で作ろうと思っています。 (1)親ウィンドウの「参照」ボタンをクリックして、別ウィンドウとして参照リストを表示させる。 (2)参照リストから選択した内容を親ウィンドウのリストボックスに追加する(この時、参照リストのウィンドウ表示を消します)。 なお、参照リストからのリスト選択は複数回行うことができるようにしたいです。 どなたかこの問題を解決できる方いますでしょうか?

  • リストボックスの項目の順番をボタンで上下に変更させたい。

    リストボックスにならぶ項目をボタンを押して上下に移動させ、 並べ替えられるようなアクションが可能ならば教えていただけないでしょうか?

  • リストボックスについて。

    普通、リストボックスで項目を選択してからsubmitボタンで、情報を転送しますよね。そうではなくて、リストボックスを開いて、項目をクリックしたらデータの受け渡しをするようにしたい場合はどうすればいいでしょうか。そういうサイトを見たことがあったような気がしたので、もしあるのなら使いたいと思い、質問してみました。

    • ベストアンサー
    • HTML
  • リストボックスの使い方

    VB2008エクスプレスを使っています ボタンを押すと画像や文字を表示することは出来るのですが リストボックスにいくつか項目を作り その項目ごとに表示される文字や画像を変えたいんですが どうすればいいのでしょうか? ちなみにボタンコントロールをダブルクリックして PictureBox1.Image = Image.FromFile("C:\Windows\大草原の風.bmp") と文を書くとピクチャーボックスに画像でます ここまでわかるのですが、リストボックスの項目ごとに 画像の種類を変えたりしたいです

  • 選択項目移動処理(リストボックス)

    表題の件で、ご質問があります。 excel2003で、VBAのユーザフォームを使っております。 リストボックスが二つあり、左の項目を選択したら右の項目にその選択した値が移動する処理をしたいのですがまったくできません。 <処理内容> ・リストボックス1の内容 りんご text メロン トマト 上記で、りんごをダブルクリックするとリストボックス1とリストボックス2の内容は以下になります。 <選択後結果> ・リストボックス1 text メロン トマト ・リストボックス2 りんご このようにダブルクリックしたらりんごは消えてリストボックス2に移動します。 また逆の処理もしたくたとえばこの状態でリストボックス2を選択したらりんごがリストボックス1に戻る。 <処理内容> ・リストボックス2 りんご ・リストボックス1 text メロン トマト リストボックス2をダブルクリックすると以下のようになります。 ・リストボックス2 ・リストボックス1 りんご text メロン トマト このようになります。 上記二点の処理がしたいと思います。 どなた様か御教授頂けないでしょうか? お手数お掛けしますが宜しくお願いします。

  • リストボックス項目の変更

    javascript初心者です。 ラジオボタンを2つ、複数選択リストボックスが1つあります。どちらのラジオボタンをチェックしているかで、リストボックス内の項目を変化させたいと思っています。 これはjavascriptで実現可能でしょうか?参考になるサイトや方法を教えていただければ嬉しいです。

  • リストボックスの選択項目をさらにクリック

    こんにちは。 C#+.NetFramework3.5で開発しています。 リストボックスを使っているのですが、リストボックスの選択されている項目をさらにクリックした場合を検出したいのです。 イベントは、 Click MouseClick MouseDown を試してみましたが、どれも選択項目が変化したあとに呼び出されるため、目的を達することができません。 選択項目が変化する前に発生するイベントはないのでしょうか? よろしくお願いします。

  • エクセル VB: フォーム内のリストボックスの項目

    エクセルVBなのですが、フォームをつくってその中にリストボックスを配置しました。 コマンドボタンで呼び出して、シート内にあるリストから項目を抽出し反復を省略したリストを フォーム内のリストボックスに作りたいのですが。 Private Sub CommandButton1_Click() UserForm1.Show (このあとリスト項目のコード) End Sub コマンドボタンをクリックすると、UserForm1が現れますが、リストの中身は空です。一度Unload meでフォームを終わらせて、2回目クリックするとリストの中身が現れます。 一回目のクリックでエラーは出ません。 一回目のクリックでリストを配置したいのですが、何が問題なんでしょうか? Excel2003 Windows Xp です。 よろしくご教示下さい。

  • エクセルのリストボックスの使い方

     WindowsXP Pro エクセル2003です。  エクセルのコントロールボックス機能を使ってリストボックスをつくりました。  リストボックスからある項目を選択するとアクティブセルにそのデータが入るようにしています。(ActiveCell.Value = ListBox1.Value)その後、セルは下に移動させます(Selection.Offset1,0).Select)。  そこで、もう一度同じ項目を入力するために上のセルと同じ項目をクリックしてもその項目が入力されません。 コントロールボックスのアクションは、リスト内の「他の項目をクリックしたとき」に実行されるということで、同じ項目は続けて指定できないようになっているようです。そこで、ある項目をクリックしたら、リスト項目内で違うところに選んだリストの場所を移動させたいと思っているのですが、そういうことができるのでしょうか。  ご存じの方よろしくお願いします。

専門家に質問してみよう