サイトアイコン pulogu.net

新規ワークブック作成直後、未保存の状態で、 ThisWorkbook.Path , ActiveWorkbook.Path を取得すると空白 "" が返ってくるようです。

目次

目的

目次まで戻る

その一例

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

目次まで戻る

保存後

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

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

テスト環境

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

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

 

目次まで戻る

モバイルバージョンを終了