- ベストアンサー
VBAでの " の使い方をお教え下さい
ThisWorkbook.SaveAs Filename:="C:???.xlsm"(???はファイル名です)をVBAの式に直す方法をお教えください。なお、???はセルを参照することにしています。具体的にはRange("O1")です。 ThisWorkbook.SaveAs Filename:="""C:" & "Range(""O1"").xlsm"""とすると、ファイル名に : は使えないというエラーメッセージが出ました。 " の使い方が分かりづらく、悩んでいます。正しい使い方はどのように考えれば良いかも教えていただければ幸いです。よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
文字列の中でダブルクォート自体を現すには""と二つ重ねる。 で、そもそもそれ以前に間違ってます。むしろダブルクォートの云々は必要ありません。 >"""C:" & "Range(""O1"").xlsm""" は 「"C:」と「Range("O1").xlsm"」の合成、つまり「"C:Range("O1").xlsm"」というファイル名で保存しようとしています。O1セルの参照ではなく文字列になっているのと、コロンの後ろにバックスラッシュがないからドライブだと認識してくれず、こういうファイル名だと判断されます。だから保存できなくて当然です。 やりたいのはこんなファイル名ではないでしょ? O1セルにどんな値が入っているかわからないけど、 ThisWorkbook.SaveAs Filename:="C:" & Range("O1") & ".xlsm" で、Cドライブの中で「O1に記載されたパス」にxlsmで保存「しようとし」ます。できるかどうかはほかの要因が絡むので保障できません。 で、話はちょっと戻りますが、O1に何が入ってるかわかりませんが、バックスラッシュ(円記号に見えているかもしれない)がO1にないなら、"C:"は"C:\"にしないといけません。 ※一応噛み砕いた上にかなりはしょってます。 意味がわからなかったら追加説明には応じますが、補足だと気づけないのでお礼欄でお願いしますね。
お礼
早速の御返事ありがとうござしました。無事保存できました。