• ベストアンサー

複数のエクセルファイル名をセルに表示させたい

マクロ初心者の若葉マークです。 仕事で複数のファイルを、ひとつにまとめ、売上をあげる作業をしています。 そのファイルは、売上先がファイル名となっています。 しかし、ファイルを開くと、売上先がどこであるかわからなくなってしまうので、 全てのファイルに一括して一行増やし、 A1のセルにそれぞれのファイル名を表示したいのですが、いい方法はありませんか。 また、A1のセルには関数ではなく、そのファイル名が残るようにしたいのですが、 マクロなどの初心者のため、全く検討がつきません。 どなたか、教えてください。

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

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

新規ブックを用意する ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub macro1()  dim myPath as string  dim myFile as string  myPath = thisworkbook.path & "\"  myFile = dir(mypath & "*.xls*")  do until myfile = ""   if myfile <> thisworkbook.name then   workbooks.open filename:=mypath & myfile   activeworkbook.worksheets(1).range("1:1").insert   activeworkbook.worksheets(1).range("A1") = myfile   activeworkbook.close savechanges:=true   end if   myfile = dir()  loop  msgbox "Done" end sub ブックを保存する ブックを,目的のブックが保存してあるフォルダにコピーする ブックを開いてマクロを実行する。 #各ブックにシートが何枚あるのか,どのシートに記入したいのか,不明なのでてきとーに作成してあります。 #いったいどこにどんな具合に目的のブックが用意してあるのかも不明なので,てきとーに作成してあります。  実態に合わせた使いやすいマクロの動作を改めて考えてみて,マクロを工夫してご自分で再作成してみて下さい。

rei-naggy
質問者

お礼

kethin様 どうもありがとうございます。 これでバッチリできました。 フォルダに50個くらいのエクセルがありまして、 その一つ一つに、今まで手作業で関数を入れていたので、 とっても助かりました。 ありがとうございます。

その他の回答 (2)

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.2

1行目に =CELL("FILENAME") と入れて見て下さい。 もっともそんなことをしないでも、Excelの上部にちゃんとファイル名は表示されているんですけどね。

rei-naggy
質問者

お礼

回答頂きましてありがとうございます。 50ファイルぐらいを、毎回開け、関数をいれたり…が時間かかってしまうので、 いっぺんにぱっと出来るものを探しています。 でも、勉強になるので助かりました。

  • qualheart
  • ベストアンサー率41% (1451/3486)
回答No.1

以下のマクロを作って実行すればOKです。 Cells(1,1).Value = Thisworkbook.name ご参考まで。

rei-naggy
質問者

お礼

ご回答ありがとうございます。 この関数を何処へはれば良いかわからず…。 すみません、私が無知過ぎて。 でも、投稿してすぐにご回答頂けて、うれしかったです。 ありがとうございました。

関連するQ&A