ExcelのXNUMXつのリストボックス間でアイテムをすばやく移動するにはどうすればよいですか?
以下のスクリーンショットに示すように、必要に応じてアイテムをXNUMXつのリストボックスから別のリストボックスに移動しようとしたことがありますか? ここでは、Excelでのこの操作について説明します。
リストボックス間でアイテムを移動する
仕事を終えるのに役立つ組み込み関数はありませんが、VBAコードで問題を解決できます。
1.まず、次のような新しいシートのリストボックスに項目として表示されるデータのリストを作成する必要があります。 admin_lists.
2.次に、これらのデータを選択して、 名前 それらに名前を付けるためのボックス アイテムリスト。 スクリーンショットを参照してください:
3.次に、XNUMXつのリストボックスを含むシートで、をクリックします。 Developer > インセット > リストボックス(ActiveXコントロール)、およびXNUMXつのリストボックスを描画します。 スクリーンショットを参照してください:
Status Developer タブはあなたのリボンを隠しています、 Excel 2007/2010/2013リボンで開発者タブを表示/表示するにはどうすればよいですか? この記事では、それを表示する方法を説明します。
4。 次に、をクリックします Developer > インセット > コマンドボタン(ActiveXコントロール)、およびXNUMXつのリストボックスの間にXNUMXつのボタンを描画します。 スクリーンショットを参照してください:
次に、XNUMXつのコマンドボタンの名前を新しい名前に変更します。
5.最初のコマンドボタンを選択し、をクリックします プロパティ、そして プロパティ ペイン、名前を付けます btn_moveallight それに、そしてタイプ >> 横のテキストボックスに キャプション。 スクリーンショットを参照してください:
6.手順5を繰り返して、最後のXNUMXつのコマンドボタンの名前を以下の名前に変更し、キャプションに別の矢印を入力します。 スクリーンショットを参照してください:
BTN_MoveSelectedRight
BTN_MOVEALLLEFT.
BTN_MoveSelectedLeft
7.リストボックスとコマンドボタンが含まれているシート名を右クリックして、 コードを表示 コンテキストメニューから。 スクリーンショットを参照してください:
8.以下のマクロコードをコピーして、 モジュール スクリプトを保存し、コードを閉じます アプリケーション向け Microsoft Visual Basic 窓。 スクリーンショットを見る
VBA:XNUMXつのリストボックス間でアイテムを移動する
Private Sub Worksheet_Activate()
'UpdatebyExtendoffice20171117
Dim xCell As Range
Dim xRg As Range
Set xRg = Sheets("Admin_Lists").Range("ItemList")
Me.ListBox1.Clear
Me.ListBox2.Clear
With Me.ListBox1
.LinkedCell = ""
.ListFillRange = ""
For Each xCell In xRg
If xCell <> "" Then
.AddItem xCell.Value
End If
Next xCell
End With
Me.ListBox1.MultiSelect = fmMultiSelectMulti
Me.ListBox2.MultiSelect = fmMultiSelectMulti
End Sub
Private Sub BTN_MoveSelectedLeft_Click()
Call moveSigle(Me.ListBox2, Me.ListBox1)
End Sub
Private Sub BTN_MoveSelectedRight_Click()
Call moveSigle(Me.ListBox1, Me.ListBox2)
End Sub
Private Sub BTN_moveAllLeft_Click()
Call moveAll(Me.ListBox2, Me.ListBox1)
End Sub
Private Sub BTN_moveAllRight_Click()
Call moveAll(Me.ListBox1, Me.ListBox2)
End Sub
Sub moveAll(xListBox1 As Object, xListBox2 As Object)
Dim I As Long
For I = 0 To xListBox1.ListCount - 1
xListBox2.AddItem xListBox1.List(I)
Next I
xListBox1.Clear
End Sub
Sub moveSigle(xListBox1 As Object, xListBox2 As Object)
Dim I As Long
For I = 0 To xListBox1.ListCount - 1
If I = xListBox1.ListCount Then Exit Sub
If xListBox1.Selected(I) = True Then
xListBox2.AddItem xListBox1.List(I)
xListBox1.RemoveItem I
I = I - 1
End If
Next
End Sub
9.次に、別のシートに移動してから、リストボックスが含まれているシートに戻ります。これで、リストデータが最初のXNUMXつのリストボックスにリストされていることがわかります。 そして、コマンドボタンをクリックして、XNUMXつのリストボックス間でアイテムを移動します。
選択範囲を移動
すべて移動
最高のオフィス生産性向上ツール
🤖 | Kutools AI アシスタント: 以下に基づいてデータ分析に革命をもたらします。 インテリジェントな実行 | コードを生成 | カスタム数式の作成 | データを分析してグラフを生成する | Kutools関数を呼び出す... |
人気の機能: 重複を検索、強調表示、または識別する | 空白行を削除する | データを失わずに列またはセルを結合する | 数式なしのラウンド ... | |
スーパールックアップ: 複数の基準の VLookup | 複数の値の VLookup | 複数のシートにわたる VLookup | ファジールックアップ .... | |
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する | 依存関係のドロップダウン リスト | 複数選択のドロップダウンリスト .... | |
列マネージャー: 特定の数の列を追加する | 列の移動 | Toggle 非表示列の表示ステータス | 範囲と列の比較 ... | |
注目の機能: グリッドフォーカス | デザインビュー | ビッグフォーミュラバー | ワークブックとシートマネージャー | リソースライブラリ (自動テキスト) | 日付ピッカー | ワークシートを組み合わせる | セルの暗号化/復号化 | リストごとにメールを送信する | スーパーフィルター | 特殊フィルター (太字/斜体/取り消し線をフィルター...) ... | |
上位 15 のツールセット: 12 テキスト ツール (テキストを追加, 文字を削除する、...) | 50+ チャート 種類 (ガントチャート、...) | 40+ 実用的 式 (誕生日に基づいて年齢を計算する、...) | 19 挿入 ツール (QRコードを挿入, パスから画像を挿入、...) | 12 変換 ツール (数字から言葉へ, 通貨の換算、...) | 7 マージ&スプリット ツール (高度な結合行, 分割セル、...) | ... もっと |
Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。 最も必要な機能を入手するにはここをクリックしてください...
Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作業をはるかに簡単にします
- Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!