※ パクレゼルヴではWeb開発エンジニアを大募集中!詳細はこちら
Home > その他 > ExcelVBAちょこっとメモ

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を終わらせてみた。

もっとスマートな書き方とかありそうだけど、
今回はツールなので、時間勝負ということで。。。

以上、ちょこっとメモでした。

かーつん その他

  1. No comments yet.
  1. No trackbacks yet.