三流君のソースコード置き場

ブログにソースコードをアップして、ブログの検索機能で利用してます(利用予定です)

よく検索されるキーワード: [VBA]/ [VBS]/ [CreateObject]/ [Excel]/ [ADO]


Private Sub ListView1_OLEDragDrop 24年07月01日作成したソース

ListViewにファイルをドロップして、A列へ
A列をクリア後、受け取ったファイル名を書き込む
ソースコード:

Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
    
    Dim sFileName
    
    Columns("A:A").ClearContents  'A列のデータをクリアする
    
    Debug.Print "Data.GetFormat(1) =", Data.GetFormat(1)
    
    'テキストフォーマットで取得可能か聞く GetFormat(1) = Trueで判断
    If Data.GetFormat(1) = True Then
        '単純に書き出してみた
        Debug.Print "Data.GetData(1) =", Data.GetData(1)
        Range("a1") = "テキストデータを受け取りました。"
        Range("a2") = Data.GetData(1)
    Else
        'テキストで取得不可なら、ファイルでしょと考えるのは、安易だが、
        '(※他の、形式で、ドロップされたデータもあるので)

        'いつもの、.Countで数がわかるので、何かのチェックで使うか。
        Debug.Print "Data.Files.Count=", Data.Files.Count
        
        Dim nROW As Long  '行カウンタ
        nROW = 1   'A1から書き込むので初期値1を代入
        For Each sFileName In Data.Files  'ファイル名を取得
            Debug.Print "Data.Files = ", sFileName
            Cells(nROW, 1) = sFileName   'A列にファイル名をセットする
            nROW = nROW + 1  '次の行へ
        Next
        
    End If
    
End Sub

Private Sub Worksheet_Activate()
    Debug.Print "Worksheet_Activate", ActiveSheet.Name
    ListView1.OLEDropMode = ccOLEDropManual  'ドロップを受け入れる
End Sub

youtu.be

https://youtu.be/TIAPCgwTjn4
geminiにタイムスタンプを作成してもらった。
概要の説明 (0:00 - 1:00)
動画の概要として、シートにListViewコントロールを追加し、ドラッグアンドドロップされたファイルの名前を取得する方法を紹介すると説明しています。

ListViewコントロールの追加 (1:00 - 4:22)
まず、シートにListViewコントロールを追加する方法を説明しています。
手順としては、シートを右クリックし、挿入 > 開発 > コントロールの挿入 の順に選択します。
コントロールの挿入ウィンドウが表示されたら、Microsoft ListViewコントロールを選択し、シート上に配置します。

コードの記述 (4:22 - 9:02)
次に、シートにコードを記述する方法を説明しています。
シートを右クリックし、コードの表示を選択すると、VBAのコードエディタが表示されます。
コードの内容については動画では詳しく説明されていませんが、ListViewにドラッグアンドドロップされたファイル名が取得できるように記述するようです。

タイミングの確認と意図的なミス (9:02 - 10:22)
このパートは、タイトルと説明が一致していないようです。動画の内容を確認すると、コードの記述ミスを意図的に仕込み、ドラッグアンドドロップしてもファイル名が取得できない状態にするようです。

ドラッグアンドドロップイベントの実行 (10:22 - 12:12)
正しいコードを記述した場合の動作確認を行います。
ListViewのプロパティからドラッグアンドドロップイベントを選択し、メッセージボックスに「ドロップ」と表示されることを確認します。

本来の動作の説明 (12:12 - 14:12)
正しいコードの場合の動作を説明しています。
ドラッグアンドドロップされたファイル名が取得され、ListViewにファイル名が追加されるようです。
また、ホルダーごとドラッグアンドドロップした場合でも、ホルダー名とファイル名が取得できるようです。

まとめとアレンジ方法 (14:12 - 15:59)
動画のまとめと、コードをアレンジする方法について説明しています。
A列をクリアにしてしまう点や、ドラッグアンドドロップされたファイル名がリストに追加される位置など、改良できる点があるようです。
最後に、質問があればコメント欄に記載するように促しています。

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。

三流解説動画の再生リスト
https://www.youtube.com/user/ken3video/playlists

[連絡先はココのフォームから]←連絡先の入力フォームです、気軽に書いてください
本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)