
いつも大変お世話になっております。
やりたいこ
添付ファイルのように
コマンドボタン1 コマンド3 コマンドボタン2
リストボックス1 リストボックス2
と並んでいます。
コマンドボタン1を押すとリストボックス1
フォルダAのサブフォルダが一覧が表示されます。
コマンドボタン2を押すとリストボックス2に
フォルダBの中のファイルの一覧が表示されます。
★リストボックス2に表示されたファイルの複数選択して
リストボックス1に表示されたフォルダの中の入れたいのです。
一つ一つはできましたが、
複数のやり方を教えてくれませんでしょぅか

No.2ベストアンサー
- 回答日時:
こんにちは
>下記のコードを利用して~
なぜ配列が出てくるのか意図がわかりません。
>一つ一つはできましたが、
>複数のやり方を教えてくれませんでしょぅか
一つができているのであるならば・・・
全体をループさせて、その中で「一つ一つ」の処理を繰り返すようになさればよいでしょう。
例えば、以下では複数選択の際に、順に選択された項目がメッセージボックスで表示されます。
表示する代わりに、「その一つの項目を処理する」ようにしておけば宜しいかと。
With Me.ListBox2
For d = 0 To .ListCount - 1
If .Selected(d) Then
' // 以下で表示する代わりに、行いたい処理を行えばよい
MsgBox .List(d)
End If
Next
End With
いつもお世話になっております
ListBox2 = .List(d,1) ★変更しました。が
一つだけしか移動しませんでした
With Me.ListBox2
For d = 0 To .ListCount - 1
If .Selected(d) Then
' // 以下で表示する代わりに、行いたい処理を行えばよい
ListBox2 = .List(d,1) ★変更しました。
End If
Next
End With
No.1
- 回答日時:
>objlist1 = ListBox1.List(ListBox1.ListIndex, 0) & "\"
>objlist2 = ListBox2.List(ListBox2.ListIndex, 0)
この2つの変数の宣言も気になりますが、イミディエイトウィンドウでどのような結果が出るのか確認されました?
推測では後者はただのファイル名+拡張子であり、どのドライブのどのフォルダ階層に存在しているのかについては不明なのでは?と感じます。
あと最後の補足で配列に入れる意味が良くわかりません。
この仕様を作成するならVBAよりはVisualStudioのVB(.NET Framework)の方がやり易そうにも思えます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Teratermマクロの戻り値の取得失敗
-
データリーダーからのデータ読...
-
system関数のエラー検出
-
Visual C++からftpを使う
-
ネットワークフォルダの中身を...
-
コマンドでweb接続を確認する方...
-
Windowsのバッチファイルでcall...
-
linux duコマンドで困っています。
-
PCに保存していた写真を見られ...
-
拡張子をつくる
-
リカバリーディスクのコピーの...
-
<a href="file:///フォルダ名/...
-
Outlookで添付ファイルの貼り付...
-
EPSON emqファイルをPrint CDで
-
Git bashが開かなくなってしま...
-
Excelで外部のファイルの場所を...
-
メルカリを退会して再登録した...
-
OpenFileDialogを使った後にも...
-
telnetでサーバー上のファイル...
-
ExcelのVBProjectがExcelを開く...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Teratermマクロの戻り値の取得失敗
-
Visual C++からftpを使う
-
system関数のエラー検出
-
ネットワークフォルダの中身を...
-
テキストボックスのフォーカス...
-
ユーザーフォーム内のテキスト...
-
バッチファイル pause時の文字...
-
telnetで接続した先のコマンド...
-
コマンドプロンプトで印刷実行
-
Windowsのバッチファイルでcall...
-
EXCELで右クリックメニューの追加
-
シリアル通信でのread関数の戻り値
-
データリーダーからのデータ読...
-
バッチ(Windows2000)での解析エ...
-
FlashROMにデータを書き込むに...
-
ぱそこん、スマホのos、アプリ...
-
VBAチェックボックスで有効無効...
-
VBA チェックボックスの設定に...
-
コマンドボタンテキストの改行
-
SDカードの初期化について
おすすめ情報
一度に投稿するとエラーになります。
Private Sub CommandButton1_Click()
Dim fso As Object
Dim pathN As String
Set fso = CreateObject("Scripting.FileSystemObject")
Dim f
ListBox1.Clear
For Each f In fso.GetFolder("C:\Users\xxx\Desktop\移動先\").subfolders
With ListBox1
.AddItem ""
.List(.ListCount - 1, 0) = f.Path
End With
Next f
End Sub
Private Sub CommandButton2_Click()
Dim fso As Object,Dim pathN As String
Set fso = CreateObject("Scripting.FileSystemObject")
With ListBox2
.Clear
For Each f In fso.GetFolder("C:\Users\xxx\Desktop\移動元\").Files
.ColumnCount = 2
.ColumnWidths = "250;2"
.Font.Size = 14
.MultiSelect = fmMultiSelectMulti
.AddItem ""
.List(.ListCount - 1, 0) = f.Name
.List(.ListCount - 1, 1) = f.Path
Next f
End With
Private Sub CommandButton3_Click()
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
objlist1 = ListBox1.List(ListBox1.ListIndex, 0) & "\"
objlist2 = ListBox2.List(ListBox2.ListIndex, 0)
fso.movefile objlist2, objlist1
下記のコードを利用して
Dim a() As String
Dim b() As String
Dim d As Long
Dim Cnt, cnt1 As Long
With Me.ListBox2
For d = 0 To .ListCount - 1
If .Selected(d) Then
Cnt = Cnt + 1
ReDim Preserve a(1 To Cnt)
a(Cnt) = .List(d)
End If
Next
If Cnt = 0 Then Exit Sub
End With