ExcelVBAちょこっとメモ 
2008/10/29 水曜日 20:17:49
こんばんわ。かーつんです。
今回はちょっとしたツール作った時のメモをば。
Excelファイル選択ダイアログを出して、選択されたファイル名(パス付)をセルに格納する場合
こんな感じに、GetOpenFilename()を使う。
Private Sub selectFile()
Dim FileName As String
'-- ファイル名取得 --
FileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
If FileName = "False" Then
Exit Sub
End If
ActiveWorkbook.Sheets(1).Cells(1,1).Value = FileName
End Sub
「キャンセル」されたときは【False】が返ってくるからSubを抜けるようにしてエラー回避する。
ファイル名のみ欲しいときはFileNameを分割すればOK
フォルダを選択させて、フォルダ名(パス付)をセルに格納する場合
こんな感じに、FileDialog()を使う
Private Sub selectFolder() Dim Folder As String '-- フォルダ名取得 -- With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then Folder = .SelectedItems(1) Else Exit Sub End If End With ActiveWorkbook.Sheets(1).Cells(1,1).Value = Folder End Sub
キャンセルされてもこいつは【Falseを返さない】。
調べるの面倒なので、選択されたときには結果を取得して、
それ以外はエラーでSubを終わらせてみた。
もっとスマートな書き方とかありそうだけど、
今回はツールなので、時間勝負ということで。。。
以上、ちょこっとメモでした。