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(“開くブック名を拡張子付きで入力してください”)】
変数ブック名にユーザーが入力したブック名を格納します。


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 & “¥” & ブック名】
ユーザーが入力したブック名が存在していて開いていない場合に
Openメソッドでユーザー指定のブックを開きます。


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

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


Path【パス】プロパティ

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

Path【パス】プロパティの書式

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


設定値の説明

  • オブジェクト(必須)
    Workbookオブジェクトを指定します。

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

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

Sub 保存()
Dim パス As String
パス = ThisWorkbook.Path
Workbooks.Add.SaveAs Filename:=パス & "¥新規ブック.xlsx"
End Sub

コードの解説

変数パスにPathプロパティで取得した
このブック(マクロが記述されているブック)のパスを
格納して、Addメソッドで新規ワークブックを作成し
SaveAsメソッドでブック名を指定して同じパスに保存しています。


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

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク