【VBScript】ファイルのドラッグ&ドロップで起動【D&D】

この記事は約3分で読めます。

『VBScript』に限らず、ツールを作ることの楽しみはこんな感じだと思ってます。

コレとコレを毎回やるのめんどくさいなー

このツールを使えば、後は待ってるだけで終わるよ!

私はあの作業から解放されたのだ!!

この世から無駄な作業がなくなるのは嬉しい!

でもね、ツールを作ってると一つ壁にぶち当たるんです。

世の中の作業はそんな単純なものばかりじゃない!
入力したい項目が複数ある場合、どうしようかな・・・とか
ファイルの拡張子によって処理切り替えたいな・・・とかとか

そんな時、ドラッグ&ドロップ(D&D)に対応するやり方を覚えておくと、ツールの幅が広がります!

この記事の著者
のら

お家大好きSE

イエスキ

yeskey

プロフィール

都内で働くシステムエンジニア
素早く家に帰るために日々技術を磨いています。
学んだ技術をわかりやすく紹介します! プロフィール詳細

スポンサーリンク

コード

Call JudgeDDFile

Sub JudgeDDFile
    Dim objArgs , objFSO , objFiles , ddFile

    Set objArgs = WScript.Arguments
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    'ファイル数判定
    Select Case objArgs.Count
        '通常起動
        Case 0
            MsgBox "入力ファイルをD&Dして下さい"
        '通常起動
        Case 1
            ddFile = WScript.Arguments(0)
            Set objFiles = objFSO.GetFile(ddFile)

            'ファイル拡張子判定
            If objFSO.GetExtensionName(ddFile) = "txt" then
                vret = MsgBox(objFiles.name & "を入力として処理します。" , vbokcancel)
                If vret = vbok then
                    'メイン処理を呼び出し
                    msgbox(objFiles)  
                Else
                    MsgBox "中止しました"
                End If
            Else
                MsgBox "txtファイルをD&Dして下さい"
            End If

            Set objFiles = Nothing
        Case Else
            MsgBox "1ファイルのみD&Dして下さい"
    End Select

    Set objArgs = Nothing   
    Set objFSO = Nothing   
    WScript.Quit
End Sub

解説

この例では起動時にドラッグ&ドロップ(D&D)されたファイルの数を判定。
通常起動(ダブルクリックなど)ではファイル数が0個なのでメインの処理に行かないです。

次にファイル拡張子を判定しています。
ココは『拡張子毎の振り分け』『想定外のファイルで処理することを予防する』などに使用します。

タイトルとURLをコピーしました