<VBA で WScript.ShellのSpecialFoldersプロパティを使ってみた>
どうも、三流プログラマーのKen3です。 今回は、 CreateObject("WScript.Shell") と、スクリプトのシェルを作成して、 SpecialFoldersプロパティを使って、 デスクトップの位置を取得してみたいと思います/* * 1.今回のキッカケ */
フォルダーの選択処理を前に作成しました。 詳細は、フォルダーを選択してファイルリストを作成する http://www.ken3.org/vba/vba-folder.html を見てください。 'フォルダー選択ダイアログを表示して、リターン値で選択場所を返す 'キャンセルの時は文字列キャンセル、 'デスクトップの時は文字列を返す
Function getFOLDER() As String Dim objShell As Object 'Shell Dim objFolder As Object 'Shell32.Folder Const strTitle = "フォルダを選択してください。" 'シェルのオブジェクトを作成する Set objShell = CreateObject("Shell.Application") 'フォルダー参照に設定 Const lngRef = &H1 'ルートフォルダーをデスクトップに設定 '5でMy Documents、6でFavoritesなど Const fldRoot = &H0 Set objFolder = _ objShell.BrowseForFolder(0, _ strTitle, lngRef, fldRoot) 'フォルダー名を取出し、リターン値をセット If objFolder Is Nothing Then 'キャンセルチェック getFOLDER = "キャンセル" 'リターン値にキャンセルをセット Else If objFolder.ParentFolder Is Nothing Then getFOLDER = "デスクトップ" Else getFOLDER = objFolder.Items.Item.Path 'パスをセットする End If End If Set objFolder = Nothing Set objShell = Nothing End Function |
Sub test() Dim objWShell As Object 'WScript.Shell Dim strDesktopPath As String 'デスクトップの場所 'Windows Script Hostのオブジェクトを作成する Set objWShell = CreateObject("WScript.Shell") 'スペシャルフォルダ(特殊フォルダ)の場所を返す strDesktopPath = objWShell.SpecialFolders("Desktop") '確認メッセージの表示 MsgBox "DesktopのPathは[" & strDesktopPath & "]です" End Sub |
Function getFOLDER() As String Dim objShell As Object 'Shell Dim objFolder As Object 'Shell32.Folder Const strTitle = "フォルダを選択してください。" 'シェルのオブジェクトを作成する Set objShell = CreateObject("Shell.Application") 'フォルダー参照に設定 Const lngRef = &H1 'ルートフォルダーをデスクトップに設定 '5でMy Documents、6でFavoritesなど Const fldRoot = &H0 Set objFolder = _ objShell.BrowseForFolder(0, _ strTitle, lngRef, fldRoot) 'フォルダー名を取出し、リターン値をセット If objFolder Is Nothing Then 'キャンセルチェック getFOLDER = "" 'リターン値に""空文字列をセット Else If objFolder.ParentFolder Is Nothing Then '下位を未選択デスクトップ? Dim objWShell As Object 'WScript.Shell 'シェルのオブジェクトを作成する Set objWShell = CreateObject("WScript.Shell") 'デスクトップの場所を返す getFOLDER = objWShell.SpecialFolders("Desktop") 'オブジェクトの開放 Set objWShell = Nothing Else getFOLDER = objFolder.Items.Item.Path 'パスをセットする End If End If Set objFolder = Nothing Set objShell = Nothing End Function |
Sub 選択テスト() Dim strWORK As String strWORK = getFOLDER() 'フォルダーの選択関数を呼ぶ If strWORK = "" Then '空文字””でキャンセルのチェック MsgBox "キャンセル押されたよ" Else MsgBox "選択されたのは" & strWORK & "です" End If End Sub |
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]