• ベストアンサー

エクセルマクロで任意のファイル名をつけて保存したい

 エクセルVBAについての質問です。  エクセルのマクロで、Aというファイルを開いて、そのうち必要なワークシートだけを抽出し、新しいブックに移動し、その新しいブックを新しいブックのsheet1のセルC2の文字列をファイル名として保存するようなマクロをくみたいと思っています。  ファイルを開いて必要なワークシートだけを抽出し、新しいブックに移動するところまではできましたが、新しいブックのセルC2の文字列をファイル名として保存することができません。FNを変数として宣言して、C2の文字列を代入し、FNをファイル名として保存しようとすると、ファイルにFNという名前が付いてしまいます。どうすれば、C2の文字列をファイル名として保存できるのでしょうか。なお、保存するフォルダはc:\変換ファイル\6月です。どなたか教えてください。よろしくお願いします。

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

  • ベストアンサー
回答No.1

FNを文字列として扱っていませんか?以下でどうでしょう? Sub 保存() Dim FN As String FN = Range("C2") ActiveWorkbook.SaveAs Filename:="C:\変換ファイル\6月\" & FN & ".xls" End Sub

noname#126193
質問者

お礼

見事に、今まで必ずデバックがでていたのが嘘のようにできました。本当にありがとうございました。  今回はおかげさまでできるようになりましたが、HitomiKuroseさんの回答でちょっと分からない点があるのですがまた質問させていただいてよろしいでしょうか。  今までの自分のステートメントと比べると&がついている点が違っているのですが、&はどのような意味を持っているのでしょうか。あと、FNには文字列(例えば企業名など)が入るので、文字列として扱っていたのですが、それではまずいのでしょうか。もしよろしければ、ご回答寝返ればと思います。  今回はありがとうございました。

その他の回答 (1)

回答No.2

&は素直に連結です。 FNの中身は文字列ですが、FN自身は変数なのに "C:\変換ファイル\6月\FN.xls" などと書くとFNと云う文字列として扱われる(""の中は文字列)ので変数としてのFNの中身が反映されません。 回答した方法ですと、FNは""の外にあるので変数として認識され、中身が反映します。

noname#126193
質問者

お礼

 お礼が遅くなって申し訳ありません。  "" や&の使い方が全然わかっていなかったようです。大変、勉強になりました。どうもありがとうございました。