リストボックスのアイテムをマウスのドラッグドロップで並べ替えたいのですが、
下のような感じで書いてみたのですが、
この状態だと、4番目のものを一番上に持ってくるという動作だけするのですが、
4番目から3番目に移動する場合や、1番目から3番目に移動する場合など
追加していくとIFが重なってきてすごくややこしくなってしまいます。
もっと分かりやすくて合理的な方法がありましたら、
大体でも良いですので、教えて頂けたら助かります。
よろしくおねがいいたします。
Private Sub Form1_Load(...略
ListBox1.Items.Add("AAA")
ListBox1.Items.Add("BBB")
ListBox1.Items.Add("CCC")
ListBox1.Items.Add("EEE")
End Sub
Private Sub ListBox1_MouseDown(...略
SelectedSortFrom = ListBox1.SelectedIndex
End Sub
Private Sub ListBox1_MouseUp(...略
SelectedSortTo = ListBox1.SelectedIndex
ListBox1Sort(SelectedSortFrom, SelectedSortTo)
End Sub
Private Function ListBox1Sort(ByVal From As Integer, ByVal Too As Integer)
If From = -1 Then Exit Function
If Too = -1 Then Exit Function
Dim A(ListBox1.Items.Count) As String
Dim B As Boolean
For i As Integer = 0 To ListBox1.Items.Count - 1
A(i) = ListBox1.Items(i)
Next
For i As Integer = 0 To ListBox1.Items.Count - 1
If i = Too Then
ListBox1.Items(i) = A(From)
B = True
Else
ListBox1.Items(i) = A(i - 1)
End If
Next
End Function
No.2ベストアンサー
- 回答日時:
No.1
- 回答日時:
マウスのUPとDOWNでやらざるを得ない以上、関数化を進めてちょっと楽にするぐらいしか工夫のしようがないでしょう。
普通にやられているようにアクティブになっているアイテムをボタンで上下の方がはるかに手っ取り早くまたバグも少ないし、コードもきれいになるしでお勧めかと思いますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
ExcelのVBAコードについて教え...
-
1日に1人がこなせるプログラム...
-
Exel VBA 別ブックから該当デ...
-
VB6のComboBox関連の書き方をVB...
-
HTML電卓で1文字消す方法
-
VLookup関数を使ってラベルに表...
-
access2003 クエリSQL文に...
-
Excel VBA素人です。VBAで図形...
-
pythonにてseleniumを使うも、...
-
ExcelVBAで「Shift_JIS(MS932)...
-
エクセルに見えない文字(JISX0...
-
レポートでグループレベルの変...
-
chatgptでつくってもらったコー...
-
JANコードとPOSコードは同じ?
-
ACCESSで、履歴事項を管理する...
-
1、Rstudioで回帰直線を求める...
-
videopadについて
-
VBAでファイルオープン後にコー...
-
CheckBoxのコントロール配列に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
access2003 クエリSQL文に...
-
1日に1人がこなせるプログラム...
-
Exel VBA 別ブックから該当デ...
-
pythonにてseleniumを使うも、...
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
chatgptでつくってもらったコー...
-
欠番の抽出について
-
JANコードとPOSコードは同じ?
-
JavaScriptの定数名が取り消し...
-
1、Rstudioで回帰直線を求める...
-
特定行の背景色を変えたいのですが
-
変数名「cur」について
-
PreviewKeyDownイベントが2回...
-
将来AIが進歩してくるにつれて...
-
ACCESSユニオンクエリでORDER B...
-
COBOLの文法
-
VBAでファイルオープン後にコー...
-
Nullの使い方が不正です。
おすすめ情報