Visual Basic 2010で、メールソフトで添付ファイルの保存・削除と同じような動きをするテキストボックス?を作りたいと考えてますがコードが思いつきません。
どなたか教えて頂けないでしょうか?
動作として
(1)テキストボックスにドラッグ&ドロップで選択されたファイルを表示。
この時、テキストボックスに表示されているファイルを右クリックで表示から削除も行いたい
(2)実行ボタンを押下で、テキストボックスに表示されているファイルを
日付(年月日と時刻)のファイル名でフォルダーを新規作成して保存したい。
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
#1 の意見に同意。
Web でだって部分的に検索すればちゃんと出てくる。
それを組み合わせれば十分なものができあがる。
そのようにして拾ってきたものを組み合わせたのが以下のコード。
ただし [右クリック] でメニューが出る云々はこの回答だけでは面倒なので、キーボードの [Delete] キーに変更。
あとテキストボックスよりはリストボックスの方が扱いやすいので勝手にリストボックスに変更した。
これだけ複数の動作を丸投げされた質問なので回答も個々の細かいところは気にしていない。
1. リストボックスの AllowDrop プロパティを True にしてドラッグ & ドロップを受け取れるようにしておく。
2. リストボックスの DragEnter イベントで、「何か」 がドラッグされてきたときの処理を行う。
具体的には、ファイルがドラッグされてきたらコピー印のエフェクトを表示し、それ以外のものがドラッグされてきたら停車禁止のエフェクトを表示させる。
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffect.None
End Sub
3. リストボックスの DragDrop イベントで、ドロップされたファイル(複数対応)のフルパスをリストボックスに追加する。
Dim filename As String() = CType(e.Data.GetData(DataFormats.FileDrop, False), String())
ListBox1.Items.AddRange(filename)
4. ボタンの Click イベントで、リストボックスに格納されているファイルを別のフォルダーにコピーする。
具体的には現在の日時を名前とするフォルダーを 「指定した場所」 に作成し、その中にファイルをコピーする。
Dim newDirName As String = Now().ToString("yyyyMMdd HHmmss")
Dim di As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(System.IO.Path.Combine("E:\hoge", newDirName))
di.Create()
For Each item As String In ListBox1.Items
Dim filename As String = System.IO.Path.GetFileName(item)
System.IO.File.Copy(item, System.IO.Path.Combine(di.FullName, filename))
Next
5. リストボックスの KeyDown イベントで、リストボックスでアイテムを選択した状態でキーボードの Delete キーが押された時に選択したファイル名をリストボックスから削除するようにする。
If ListBox1.SelectedIndex = -1 Then
Exit Sub
End If
If e.KeyCode = Keys.Delete Then
ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
End If
temtecomai2 さん、回答ありがとうございます。
reodesuyo さんの言ってる事はその通りだと思います。
色々ググって、検索結果で途中まで作ったのですが、
上手く行かなくて質問した次第です。
temtecomai2 さんの回答を参考にコードを書かせて頂きました。
やりたい事がほぼ出来ました。
大変助かりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/21 16:01
- ノートパソコン EXCEL のドキュメントの回復について 2 2023/03/19 17:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/05/23 15:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
e-taxで送信ファイルの拡張子が...
-
個別に違う添付ファイルを付け...
-
エクセルで「特定の文字を含む...
-
A4の紙に印刷されている文字を...
-
ビデオファイルのプロパティの...
-
エアコンの冷媒 R410Aの重...
-
TextBoxにフォーカスを与えると...
-
スマホでtxtファイルを編集する...
-
C言語のselectでのファイルディ...
-
GIMP separate+プラグイン クラ...
-
stdio.hの中身
-
エクセルのセルからフォーカス...
-
ポーカーの手の判断
-
拡張子「.IDJ」を、windo...
-
テキストエディタでVBを編集...
-
カメラのフラッシュは大丈夫?
-
PC内で速度を遅くした音源をCD...
-
ファイル数と合計サイズの取得方法
-
iphone のメモが消えてしまいま...
-
ドアスコープが取れない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
e-taxで送信ファイルの拡張子が...
-
個別に違う添付ファイルを付け...
-
スマホでtxtファイルを編集する...
-
エクセルで「特定の文字を含む...
-
A4の紙に印刷されている文字を...
-
Fortniteのクラッシュについて
-
ビデオファイルのプロパティの...
-
iPhoneの内蔵の記憶媒体は、HDD...
-
ガラケーからPCへの写真の取り込み
-
情けない話ですが成田エクスプ...
-
PC内で速度を遅くした音源をCD...
-
TextBoxにフォーカスを与えると...
-
2枚、マイクロSDカードを入...
-
エアコンの冷媒 R410Aの重...
-
リストビューの選択状態を取得...
-
RSSフィードと無断転載について
-
拡張子「.IDJ」を、windo...
-
VBA:カウンターの i の値が開放...
-
ファイル数と合計サイズの取得方法
-
複数のブックを新しいブックのS...
おすすめ情報