目次

問題

新規ブックを作ってマクロを書いていたところ、 ActiveWorkbook.Path が取得できない。 Ctrl + Space で表示される入力候補の中から ActiveWorkbook を選んで、 ドット( . )を入れて、 更に出てくる入力候補から Path プロパティを選んでいるのでコードは間違っていないはず。

しかし、 Msgbox 関数、 Debug.Print メソッドで表示した ActiveWorkbook.Path の結果は空白のまま。

ExcelVBA のコード :

Sub アクティブワークブックパス取得()
MsgBox ActiveWorkbook.Path 'ワークブックの保存されている場所が表示さるはずでした。
End Sub

Msgbox 関数の実行結果 :

なぜか空白です。
なぜか空白です。

目次まで戻る

解決

原因は早々にわかりました。それは、新規ブックを未保存で実行していたためでした。新規ブックを保存後に、 ActiveWorkbook.Path を実行すると正常に表示されました。

未保存のワークブック
未保存のワークブック

新規ブックを未保存の場合で、 Msgbox 関数を実行すると、空白というのか文字としては、何もありませんでした。

なぜか空白です。
なぜか空白です。

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

保存済みのワークブック
保存済みのワークブック

そして、再度 Msgbox 関数を実行してみます。そうすと、今度は、 ActiveWorkbook.Path が表示されています。

保存した場所が表示されています。
保存した場所が表示されています。

目次まで戻る

もう一つのエラー

もう一つエラーの原因があるかもしれません。それは、以下のコードのように Path プロパティを返す宛というか先がない場合です。上記の最初のコードのように Msgbox に結果を返すとか、 a = の式のようにして、 a に結果返すとすれば良いのだと思います。

ExcelVBA のコード :

Sub アクティブワークブックパス取得_02()
ActiveWorkbook.Path 'エラーになります。
End Sub
Visual Basic Editor のスクリーンショット。もう一つのエラー。
Visual Basic Editor のスクリーンショット。もう一つのエラー。

この場合はとりあえず、 a = ActiveWorkbook.Path のような式になっていれば、エラーにはならないようです。

ExcelVBA のコード :

Sub アクティブワークブックパス取得_03()
a = ActiveWorkbook.Path 'とりあえずエラーにはなりません。変数 a に Path の結果が入っているので、この後の処理で使用することもできます。
End Sub

目次まで戻る

参考情報

MSDN

目次まで戻る

あとがき

原因が全く分からないまま、 Excel 、パソコンの再起動をかけてみたりしていました。

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

目次まで戻る

コメントを残す

  • わかる範囲でしかお答えできませんが、質問も大歓迎です。
  • * のついた項目は必須になります。
  • お名前が未入力の場合は「匿名」という名前で送信されます。
  • 投稿していただいたコメントは、当ブログ管理者の承認後に表示されます。全体的には、以下の流れになります。
    1. コメントを送信。
    2. このページに自動で戻ってきて何の変化もない状態です。
    3. 都度、管理者承認。
    4. コメントが表示されます。
*
コメント欄では、次の HTML タグと属性を使用することができます。 : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

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

前後の投稿