目次

目的

  • 新規ワークブック作成直後に以下を取得してみる。
    1. ThisWorkbook.Path
    2. ActiveWorkbook.Path
  • 新規ワークブックを保存してもう一度取得してみる。

目次まで戻る

その一例

  1. 新規ワークブック作成。未保存の状態です。
    Book1 になっている。
    Book1 になっている。
  2. 下記マクロを実行してみます。
    Sub Path取得_ブック未保存()
    Dim a, b
    a = ActiveWorkbook.Path
    b = ThisWorkbook.Path
    Debug.Assert False
    End Sub
    1. マクロが中断されました。
      Debug.Assert False の記述で中断。
      Debug.Assert False の記述で中断。
    2. この時の VBE ローカルウィンドウの状態です。
      変数 a,b は "" のままになっている。
      変数 a,b は "" のままになっている。
  3. Name も取得してみます。実行してみます。
    Sub Name取得_ブック未保存()
    Dim a, b
    a = ActiveWorkbook.Name
    b = ThisWorkbook.Name
    Debug.Assert False
    End Sub
    1. マクロが中断されました。
      中断されています。
      中断されています。
    2. この時の VBE ローカルウィンドウの状態です。
      Book1 になっています。保存済みだと拡張子 xls が付くはずです。
      Book1 になっています。保存済みだと拡張子 xls が付くはずです。

目次まで戻る

保存後

ワークブックを保存してテストしてみます。

  1. パソコンのデスクトップに「Book1.xls」として保存しました。
    Book1.xls
    Book1.xls
    1. 私の場合、マウス、キーボードで保存を行いましたが、下記コードでも可能だと思います。
      Sub 名前を付けて保存()
      ActiveWorkbook.SaveAs "C:¥Users¥xxx¥デスクトップ¥Book1.xls"
      End Sub
      1. xxx の部分他、ユーザーの環境よって変更する必要があります。
  2. ワークブックのウィンドウのタイトルが「Book1.xls」になりました。
    Book1.xls
    Book1.xls
  3. 下記マクロを実行してみます。
    Sub Path取得_ブック保存済み()
    Dim a, b
    a = ActiveWorkbook.Path
    b = ThisWorkbook.Path
    Debug.Assert False
    End Sub
    1. マクロが中断しました。
      中断されている。
      中断されている。
    2. この時の VBE ローカルウィンドウの状態です。
      「C:¥Users¥xxx¥デスクトップ」が取得出来ている。
      「C:¥Users¥xxx¥デスクトップ」が取得出来ている。
  4. Name を取得してみます。実行してみます。
    Sub Name取得_ブック保存済み()
    Dim a, b
    a = ActiveWorkbook.Name
    b = ThisWorkbook.Name
    Debug.Assert False
    End Sub
    1. マクロが中断しました。
      中断されている。
      中断されている。
    2. この時の VBE ローカルウィンドウの状態です。
      拡張子の付いた「Book1.xls」が取得されている。
      拡張子の付いた「Book1.xls」が取得されている。

テスト環境

  • Windows 10(64 ビット)
  • Microsoft Office Excel 2003

私の場合、保存前のワークブックで Path を取得して、思い通りの処理にならない事がよくあります。よく忘れています。

以上、閲覧ありがとうございました。

 

目次まで戻る

同じカテゴリの投稿(Excel VBA)

前後の投稿