× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
![]() |
Excelマクロのモジュールをそのまま貼り付け。
(会社とか家とか出先とかで見るため) 「Option Compare Binary」以下を標準モジュールに貼り付ければ、Myマクロ辞典に! 貼り付け後、「■Sub 」を「Sub 」に置き換えよう! ※公開している以上、利用は自由ですが、自己責任で。 Option Compare Binary Option Explicit ' 'ファイル操作関連 ■Sub カレントフォルダの変更_その1() '以下の2行が必要。 ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path '"CurDir"がカレントフォルダの意 MsgBox "現在のカレントフォルダは" & vbCr & CurDir & vbCr & "です。" End Sub ■Sub カレントフォルダの変更_その2() ChDrive ActiveWorkbook.Path ChDir ActiveWorkbook.Path MsgBox "現在のカレントフォルダは" & vbCr & CurDir & vbCr & "です。" End Sub ■Sub カレントフォルダの変更_デスクトップに保存() Dim Path As String, WSH As Variant Set WSH = CreateObject("WScript.Shell") Path = WSH.SpecialFolders("Desktop") & "\" ActiveWorkbook.SaveAs Path & "Sample1.xls" Set WSH = Nothing '※「Path」を変数に使うと変な動きをするので「myPath」とかにすること。??? '※「Path」はプロパティ(Pathプロパティ)として使われる。 '※カレントドライブが別のドライブの場合、ChDirステートメントを実行してもカレントフォルダは変更されない。 '※にChDriveステートメントでドライブを指定する。 '※ChDrive "D" '引数に指定する文字列 '定数 内容 'Desktop Desktopフォルダ 'Favorites Favoritesフォルダ 'Fonts Fontsフォルダ 'MyDocuments MyDocumentsフォルダ 'Programs Programsフォルダ 'Recent Recentフォルダ 'SendTo SendToフォルダ 'StartMenu StartMenuフォルダ 'StartUp StartUpフォルダ End Sub ■Sub カレントフォルダの変更_マイドキュメントから開く() 'カレントフォルダの変更 Dim Path As String, WSH As Variant, openFileName As String Set WSH = CreateObject("WScript.Shell") Path = WSH.SpecialFolders("MyDocuments") & "\" ChDir Path Debug.Print Path 'ファイルを開く(GetOpenFilename FileFilter, FilterIndex, Title, ButtonText, MultiSelect) openFileName = Application.GetOpenFilename("Excelファイル,*.xls") If openFileName <> "False" Then Workbooks.Open openFileName End If Set WSH = Nothing End Sub ■Sub フォルダの確認() Dim myPath, myDir As String myPath = Range("myCurDir") '前回使用したファイルパス myDir = Dir(myPath, vbDirectory) '前回使用したフォルダ(存在しない場合は空欄になる) MsgBox "パス: " & myPath & " " & Chr(10) & "フォルダ名: " & myDir '※カレントフォルダの確認は、File の「ファイルを取得」を参照 End Sub ■Sub フォルダの作成() MkDir "C:\Work\新しいフォルダ" 'フォルダ名だけを指定した場合、カレントフォルダが操作の対象になる End Sub ■Sub フォルダの削除その1() RmDir "C:\Work\新しいフォルダ" 'フォルダにファイルが存在するとエラーになる(空のフォルダしか削除できない) End Sub ■Sub フォルダの削除その2() Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") FSO.DeleteFolder "C:\Work" Set FSO = Nothing 'C:\Work\フォルダを削除(フォルダ内の全てのファイルを削除) End Sub ■Sub フォルダ指定_その1() '【FileDialogオブジェクトを使う方法】 'ダイアログが開くのでフォルダを選択すると、そのフォルダがカレントフォルダになる。 'ダイアログのボタンは使えず、「保存先」のプルダウンメニューでフォルダを指定する。 ←使えるみたい。。。 Dim MyFolder As String With Application.FileDialog(msoFileDialogFolderPicker) '.Show 以下のIF文が入らないときはこれだけでよい。 If .Show = -1 Then MyFolder = .SelectedItems(1) Else '[キャンセル] をクリックした場合 End End If End With MsgBox "MyFolder: " & MyFolder MsgBox "CurDir: " & CurDir '「ファイルパスの変更」も参照 End Sub ■Sub フォルダ指定_その2() '【Shellを使う方法】 Dim Shell, myPath Set Shell = CreateObject("Shell.Application") Set myPath = Shell.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\") 'Set myPath = Shell.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, ThisWorkbook.path) '↑これにすると上層のフォルダが選べない If Not myPath Is Nothing Then MsgBox myPath.Items.Item.Path Set Shell = Nothing Set myPath = Nothing '参照:http://officetanaka.net/excel/vba/tips/tips39.htm (2010/03/30) End Sub PR |
![]() |
![]() |
|
![]() |