Excel VBA ブック名を取得するNameプロパティ 保存場所を取得するPathプロパティ

スポンサーリンク

Name【ネーム】プロパティ

ブックの名前を取得するにはWorkbook【ワークブック】オブジェクトのName【ネーム】プロパティを使用します。ブックが開いているかどうかを確認する場合によく使用されます。保存済みのブックでは、拡張子まで取得しますが新規ブックで未保存の場合は拡張子のないブック名が取得されます。

Name【ネーム】プロパティの書式と設定値の説明

オブジェクト.Name
【戻り値】文字列型(String)

  • オブジェクト(必須)
    名前を取得したいブックを表すWorkbook【ワークブック】オブジェクトを指定します。

※WorkBook【ワークブック】オブジェクトのName【ネーム】プロパティは値の取得のみ可能で、設定はできません。ブックの名前を設定する場合はSaveAs【セーブアズ】メソッドを使用して保存する必要があります。

指定したブックが開いているか確認してから指定ブックを開くコードと解説

Sub ブックオープン()
Dim ブック名 As String
Dim ブック As Workbook
On Error GoTo エラー処理
ブック名 = InputBox("開くブック名を拡張子付きで入力してください")
For Each ブック In Workbooks
If ブック.Name = ブック名 Then
MsgBox ブック名 & "は開いています。"
Exit Sub
End If
Next
Workbooks.Open ThisWorkbook.Path & "¥" & ブック名
Exit Sub
エラー処理:
MsgBox "指定のブックは存在しません。"
End Sub
2行目【Dim ブック名 As String】
ユーザーがInputBox【インプットボックス】関数に入力したブック名を格納する変数「ブック名」を文字列型(String)で宣言します。


3行目【Dim ブック As Workbook】
開いているブックを繰り返し処理の中で順に格納する変数「ブック」をオブジェクト型(Workbook)で宣言します。


4行目【On Error GoTo エラー処理】
ユーザーが入力したブック名が存在しない場合、エラーが発生するのでエラーが発生した場合14行目の「エラー処理」ラベルまで処理をジャンプします。


5行目【ブック名 = InputBox(“開くブック名を拡張子付きで入力してください”)】
InputBox【インプットボックス】関数を使用してユーザーに検索するブック名を入力してもらい変数「ブック名」に代入します。


6行目【For Each ブック In Workbooks】
For Each【フォーイーチ】ステートメントで変数「ブック」に開いているブックを繰り返しの中で順に格納します。


7行目【If ブック.Name = ブック名 Then】
開いているブックが格納されている変数ブックのブック名をNameプロパティで取得して、ユーザーが入力したブック名が
格納されている変数ブックと同じだった時をIf【イフ】ステートメントで定義します。


8行目 9行目
【MsgBox ブック名 & “は開いています。”
Exit Sub 】

7行目のIf【イフ】ステートメント(条件分岐)が成立したとき、すなわち、ユーザーが入力したブック名のブックが開いていいるとき、メッセージを出し、処理を終了します。


12行目【Workbooks.Open ThisWorkbook.Path & “¥” & ブック名】
ユーザーが入力したブック名が存在していて開いていない場合にWorkbooks【ワークブックス】コレクションのOpen【オープン】メソッドでユーザー指定のブックを開きます。

パス(保存場所)も含めたブック名を取得する方法

Name【ネーム】プロパティは、指定したブックの名前のみ取得しますが、パスを含めたブック名を取得するには、FullName【フルネーム】プロパティを使用します。


Path【パス】プロパティ

指定したブックの保存場所の絶対パスを取得するには、Workbook【ワークブック】オブジェクトのPath【パス】プロパティを使用します。ブックの保存場所を確認する場合や保存場所として指定する場合に利用します。

Path【パス】プロパティの書式と設定値の説明

オブジェクト.Path
【戻り値】文字列型(String)

  • オブジェクト(必須)
    パス(保存場所)を確認するブックを表すWorkbook【ワークブック】オブジェクトを指定します。

※Path【パス】プロパティが返すパスは、パスの最後の¥記号とブック名を返しません。そのため、取得したパスをブックの保存先とする場合は、取得したパス名の後に¥記号を&アンパサンドで連結しブック名を記述します。

マクロが記述されているブックと同じパスに新規ブックを保存するコードと解説

Sub 保存()
Dim パス As String
パス = ThisWorkbook.Path
Workbooks.Add.SaveAs Filename:=パス & "¥新規ブック.xlsx"
End Sub
変数パスにPath【パス】プロパティで取得したこのブック(マクロが記述されているブック)のパスを格納して、Workbooks【ワークブックス】コレクションのAdd【アド】メソッドで新規ワークブックを作成しSaveAs【セーブアズ】メソッドでブック名を指定して同じパスに保存しています。

以上で、Name【ネーム】プロパティ Path【パス】プロパティの解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告