• ベストアンサー

パスをセルから取得し保存 VBA

エクセルVBAでの質問です。 Cドライブにテキスト形式で保存する場合は = xlAPP.GetSaveAsFilename(InitialFileName:="C:\test.txt",FileFilter:=cnsFILTER,Title:=cnsTITLE) となると思いますが、上記で使われている”C:\”の部分をセル(保存したいパスを入力)から取得する場合はどのように記述すればよいでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mimeu
  • ベストアンサー率49% (39/79)
回答No.2

No1. さんが書かれた通りなのですが、言葉を変えてお答えします。 エクセルVBAで、セルに書かれた文字情報を取得するには = Application.Workbooks(ブック名).Worksheets(シート名).Range(セル範囲) とします。    ブック:  例えば "ABC.XLS"    シート名: 例えば "Sheet1"    セル範囲: 例えば "A1" もしあらかじめ、そのブックが選択されているなら    = Worksheets(シート名).Range(セル範囲) でも同じ結果が得られます。 更にもしあらかじめ、そのブックの、そのシートが選択されているなら    = Range(セル範囲) でも同じ結果が得られます。 更にもしあらかじめ、そのセルが選択されているなら    = Selection でも同じ結果が得られます。 (^-^) ですから、ご質問の答は    = xlAPP.GetSaveAsFilename(InitialFileName:=Range("A1"),FileFilter:=cnsFILTER,Title:=cnsTITLE) のようなイメージになります。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

「xlAPP」で引き当ててるってことは,エクセル上で稼働しているマクロでは無いのかな? ご質問の直接の回答としては,(あるエクセルオブジェクトの)あるブックのあるシートのあるセルに「C:\」などのパスが区切りの「\」まで書いてあるとすると = xlAPP.GetSaveAsFilename( _ InitialFilename:= xlapp.ブックオブジェクト.worksheets("シート名").range("セル番地").value & "test.txt", _ FileFilter:= … などのようになりますね。

関連するQ&A