ExcelのXNUMXつのリストボックス間でアイテムをすばやく移動するにはどうすればよいですか?
以下のスクリーンショットに示すように、必要に応じてアイテムをXNUMXつのリストボックスから別のリストボックスに移動しようとしたことがありますか? ここでは、Excelでのこの操作について説明します。
![]() |
![]() |
![]() |
リストボックス間でアイテムを移動する
仕事を終えるのに役立つ組み込み関数はありませんが、VBAコードで問題を解決できます。
1.まず、次のような新しいシートのリストボックスに項目として表示されるデータのリストを作成する必要があります。 admin_lists.
2.次に、これらのデータを選択して、 お名前 それらに名前を付けるためのボックス アイテムリスト。 スクリーンショットを参照してください:
3.次に、XNUMXつのリストボックスを含むシートで、をクリックします。 ディベロッパー > インセット > リストボックス(ActiveXコントロール)、およびXNUMXつのリストボックスを描画します。 スクリーンショットを参照してください:
![]() |
![]() |
![]() |
もし ディベロッパー タブはあなたのリボンを隠しています、 Excel 2007/2010/2013リボンで開発者タブを表示/表示するにはどうすればよいですか? この記事では、それを表示する方法を説明します。
4。 次に、をクリックします ディベロッパー > インセット > コマンドボタン(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 for Excelはほとんどの問題を解決し、生産性を80%向上させます
- 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
- スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
- セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
- [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
- 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
- テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
- スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
- ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
- 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作業をはるかに簡単にします
- Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
