【必携Function-1】【エクセル2013,VBA】
新しくエクセルのアプリケーションを作る際には、便利なFunctionの一群をまずはごっそり移すところからはじめます。
以下、必携のファンクションを紹介します。
1.GetDeskTopPath
デスクトップのパスを取得するファンクション。例えば↓のような使い方をします。
デスクトップのパスをデフォルトの保存場所などにしておくと、不特定のPCでも動作するファイルになります。
Thisworkbook.pathも同じような目的で使用します。また「("Desktop")」を変更すればマイドキュメント等のパスの取得も可能です。
2.GetUserName,GetComputerName
user nameやコンピュターnameを取得するファンクション。例えば↓のような使い方をします。
社用PCなどuser nameと利用者情報の対応表が存在する場合、このファンクションを利用して利用者情報の自動入力補助ができるようになります。
3.SelectFold,SelectFile
ダイヤログボックスからフォルダやファイルを指定(=パスを取得)できます。
動的なアプリケーションに必須です。
動的にしておくと、様々なデータやファイルで検証しやすいのでテストの際などにも便利です。
Sub 動作確認() MsgBox "Functionの動作確認 " MsgBox GetDeskTopPath MsgBox GetUserName MsgBox GetComputerName MsgBox SelectFold MsgBox SelectFile End Sub Function GetDeskTopPath() 'デスクトップパス取得 Dim MyWSH As Object Set MyWSH = CreateObject("WScript.Shell") GetDeskTopPath = MyWSH.SpecialFolders("Desktop") Set MyWSH = Nothing End Function Function GetUserName() 'ユーザーネーム取得 Dim WshNetworkObject As Object Set WshNetworkObject = CreateObject("WScript.Network") GetUserName = WshNetworkObject.UserName Set WshNetworkObject = Nothing End Function Function GetComputerName() 'コンピューターネーム取得 Dim WshNetworkObject As Object Set WshNetworkObject = CreateObject("WScript.Network") GetComputerName = WshNetworkObject.ComputerName Set WshNetworkObject = Nothing End Function Function SelectFold() As String With Application.FileDialog(msoFileDialogFolderPicker) .Title = "フォルダー選択" If .Show = -1 Then SelectFold = .SelectedItems(1) Else 'キャンセルボタンがクリックされた SelectFold = "CANCEL" End If End With End Function Function SelectFile() As String With Application.FileDialog(msoFileDialogFilePicker) .Title = "ファイル選択" If .Show = -1 Then SelectFile = .SelectedItems(1) Else 'キャンセルボタンがクリックされた SelectFile = "CANCEL" End If End With End Function