質問: 【エクセル マクロ】読み込んだcsvファイルの名前を別名保存のファイル名に使いたい こんにちは。 当方マクロ初心者で、教本を片手にマクロを組んでいるレベルです。 宜しければご回答お願いします。 質問はタイトルにあるように、 「読み込んだcsvファイルの名前を別名保存のファイル名に使いたい」 ということです。 マクロ有効のエクセルファイル(abc.xlsm)に、csvファイル(123.csv)を取り込む ※getopenfilenameというマクロでcsvファイルを取り込んでいます(マクロボタンを設置) ↓ 取り込んだcsvデータで集計等の作業をする ↓ 作業が終わったマクロ有効エクセルファイル(abc.xlsm)を「別名をつけて保存」する ※この時、保存ダイアログボックスに読み込んだcsvファイルの名前が自動で付与される(123.xlsm) ようにしたいです。 なお「別名をつけて保存」はエクセルファイル(abc.xlsm)上にマクロ実行用のボタンを設置して使用する予定です。 (ボタンで実行させるのはエクセルに不慣れな方も使用する為です) 説明が下手でやりたいことがうまく伝わっていないかもしれませんが、、、 よろしくご教授くださいませ。
回答: やりたいことが見えない部分があります。 取り込んだcsv・・・は abc.xlsmのシートにコピペしているの? 今のコードは公開できないのかな。 ということでファイル名の取り出しだけです。 sub sample() dim filepath as string, filename as string, v as variant, i as integer filepath = application.getopenfilename("csv files (*.csv), *.csv") v = split(filepath, "\") for i = lbound(v) to ubound(v) '以下3行イミディエイトウィンドウでの確認用 debug.print i & "__" & v(i) next filename = v(ubound(v)) '拡張子を含んだファイル名 debug.print "あり", filename filename = left(v(ubound(v)), instrrev(v(ubound(v)), ".") - 1) '拡張子含まず debug.print "なし", filename end sub