「みんな教えて! 選手権!!」開催のお知らせ

先日ここで絶対パスから相対パスに変更する方法を質問したら、
ThisWorkbook.Path
という書き方(コマンド)を教わって、使ってみたら非常に便利なコマンドであることを実感し、他のBookのVBAにも横展開しようとしているのですが、いくつかのBookでは問題なく書き換えられたのですが、下記のコードに適用すると「定義式が必要です」とエラーになってしまいます。

当方はVBAはマクロの記録とここで教えてもらったVBAを組み合わせる程度のレベルなので「定義式」が分かりません。VBAに詳しい方HELPです!!

下記のコードはマクロでファイル保存時のフォルダのパスです。
元のコード :Const PdfDir = "\ABC\DEF\GHI\JKL\MNO\成績表" 絶対パス
エラーコード:Const PdfDir = ThisWorkbook.Path & "\成績表" 「定義式が必要」なコード

A 回答 (2件)

Const(定数)にはThisWorkbook.Pathは定義できません



PdfDirを変数として扱うことで代入できます

Dim PdfDir As String
PdfDir = ThisWorkbook.Path & "\成績表"
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございました。

一発解決!出来ました。
色んな記述方法があり、基礎知識が全くないのでジタバタしながらですが今回も何とか解決できました。

お礼日時:2024/01/23 13:08

#1の方の言う通りですが、


Dim PdfDir As String: PdfDir = ThisWorkbook.Path & "\成績表"
とかくこともできます。
そうすると、多少は定数っぽく見えます。
(実態は#1の方が書いたことと同じです。)
    • good
    • 0
この回答へのお礼

tatsumaru77-さん
今回もご回答いただきありがとうございます。

これだと1行で済むようですね。
ただし、既に#No1さんで解決(処理)済みなのでBSはNo1さんにさせて頂きますのでご了承ください。

<余談ですが・・・>
昨日のコマンドは相対パスより使い易く汎用性があることが理解できました。
とにかく当方に分かり易い!!
既に複数のBookで変更完了し、他部署にもPRしました。

お礼日時:2024/01/23 15:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報