• ベストアンサー

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答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% (7987/21355)
回答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

  • エクセル 複数ファイルの一括セル入力

    同じフォーマットを用いた複数のエクセルファイル(約200~3000)の編集作業で、 例えば、全てのファイルについて A1のセルに同じテキスト、数式、または関数を一括で入力する方法を探しています。 マクロを使えばできることなのだということは解りましたが、 マクロ初心者なので自分で作ることまではいたることができませんでした。 もしこの一連の作業のマクロ、もしくはフリーウェアなどご存知でしたら ご教授いただけますと幸いです。 宜しくお願いいたします。

  • 複数ファイルの同じ位置のセル内容を、それぞれファイル名・シート名にして保存したい

    VBA初心者ですが、いろいろなQ&Aを検索して、やりたいことの解決方法を模索しているのですが、私の疑問にドンピシャの回答が見つからず悩んでいます。 目的は、あるフォルダ内の、複数のランダムなファイル名のエクセルファイルについて、それぞれのファイルを開き、アクティブシートのA1セルの入力内容に基づき、そのシートの名前を変更し、ファイル名も変更して保存するという作業です。(例えば、A1に「山田」と入っていたら、シート名も「山田」にして、「山田.xls」で保存する。) マクロの自動作成で、例えば「A」というファイルは開いてシート名を変え、ファイル名を付けて保存するくらいのことはできるのですが、ファイル名がランダムに代わったり、ファイル数が複数になるとできません。 このようなマクロを作ることは可能なのでしょうか?。 よろしくお願いいたします。

  • エクセルの複数のファイルを1つのファイルにする。

    エクセルの複数のファイルを1つのファイルにする。 同じ雛形内でいろいろ入力された複数のファイル(book)を1つのファイル(book)にしたいです。 現在の方法は 1.1月売上というファイルを開く。 2.2月売上というファイルを開く。 3.開いた2月売上のファイルの中の雛形部分を全行コピーします。 4.1月売上のファイルの最終行の下の行に貼り付けします。 5.2月売上というファイルを閉じます。 6.3月売上というファイルを開く 7.開いた3月売上のファイルの中の雛形部分を全行コピーします。 8.NO.4の作業後の最終行の下の行に貼り付けします。 9.3月売上というファイルを閉じます。 10.4月売上というファイルを開く。 11.開いた4月売上のファイルの中の雛形部分を全行コピーします。 12.NO.8の作業後の最終行の下の行に貼り付けします。 13.4月売上というファイルを閉じます。 14.5月売上というファイルを開く 15.開いた5月売上のファイルの中の雛形部分を全行コピーします。 16.NO.12の作業後の最終行の下の行に貼り付けします。 17.5月売上というファイルを閉じます。 18.名前をつけて保存で「1月売上」→「1月-5月売上」で保存 これで「1月-5月売上」のファイルを開けば 5ファイル分のデータがあり、あとはオートフイルタやら並び替えやら 編集で自由自在です。 ですが上記手順は非常に大変で、かつ2月売上を2回貼り付けたり 3月売上を忘れたりというリスクもあります。 上記例では5ファイルですが30ファイルもあったら凄い負担です。 1発で行う方法はありますでしょうか? ちなみに最初から1ファイルに入力し続けてでの回避は出来ません。 システムから自動に分かれて吐き出される為です。

  • Excelで複数の写真。

    Excelで複数の写真を同じサイズに一気に挿入する方法を教えてください。 写真の大きさは、履歴書ぐらいの大きさで、1つのセルに1枚入るようにしたいです。 最終的に、できるだけたくさん並べて、A4用紙に印刷したいです。 Excel初心者です。Σ(-∀-;) もしも可能であれば、もう1つ。 上記の写真に加え、ファイル名も一緒に 表示できるのであれば、そちらも教えていただきたいです。┏〇┏〇┏〇 一行目→写真。複数(A4に入る分) 二行目→ファイル名。複数(A4に入る分) 三行目→写真。複数(A4に入る分) 四行目→ファイル名。複数(A4に入る分) のようなイメージです。 説明が下手ですいません。 よろしくお願いします♪┏〇┏〇

  • エクセルの関数を使って、セルの名前をファイル名に反映させたい

    エクセルの関数を使って、セルの名前をファイル名に反映させたいのですが。。できますでしょうか??? 大量のファイルが(だいたい同じ中身だけれど、ファイル名は個人名にしたい)あるのですが関数を使ってファイル名を作ることはできますでしょうか。 当方、マクロ VBAは ??です。 よろしくお願いいたします。

  • エクセルの関数で、セルに書いたファイル名を参照

    エクセルの関数で、セルに書いたファイル名を参照する方法が知りたいです。 エクセル関数初心者レベルです。 別のファイル(開いた状態)に欲しいデータがあって、そのデータをexcel関数(できればOFFSET関数等)を使って他のファイルで参照します。 その際、その関数に記載されるファイル名を別のセルに記入して、それを参照させるようにしたいのですが、どうすればよいのでしょう。 たとえば、afile.xlsというファイルのbsheetというシートのA1セルに欲しいデータ(数字または文字)があるとします。 afile.xlsを開いた状態で、別のファイル(new.xlsとします)のセルに、"="で参照させると =[afile.xls]bsheet!$A$1 という関数が入り、データも表示されています。 ここで、たとえばnew.xls上の B2セルに " afile.xls " とベタ打ちして、 上掲の=[afile.xls]bsheet!$A$1の [afile.xls] のところをB2セルを参照させるようにしたいです。単純にB2と打ち変えてみたりもしたのですが、うまくいかないようで。 どなたか教えて頂けるとたすかります。よろしくお願いいたします。

  • 複数のエクセルの同じセルにファイル名一括入力

    複数のエクセルファイルが同じフォルダ上にあります。 内容は全く同じで、ファイル名だけが違うものです。 そのファイルそれぞれにファイル名を一括で入力するなんて事は可能でしょうか? たとえばりんご.xls、ばなな.xls、みかん.xls・・・とありまして、 それぞれのセルA1にりんご ばなな みかん と入れたいのです。 または、それが可能なフリーソフトなどありましたら情報が欲しいです。

  • エクセルマクロでファイル名やシート名変更できない

    エクセルは初心者なのでマクロを自動記録して作成しています。 少しづつ動作を小分けにして記録して、まとめてボタンで連続実行させるようにしました。 (1)作成途中で失敗したら最初からの作業になると思い、 ある程度進んだら何度かファイルのコピーを作成して進めていました。 ある程度完成した時点でファイル名が「○○○4~コピー~」の様な名前だったので、正式に名前を決めて変更したらマクロの実行が出来なくなりました。(元の名前に戻すと実行可能) (2)またシートも複数のシートに跨って参照するようなマクロです。 シート名を分かりやすい名前に変更したらこの場合もマクロ実行できなくなりました。 (3)コピーしたファイルもマクロ実行できないものがあります。 コピーしたファイルはマクロ実行できないのでしょうか? (4)ファイル作成途中で何かの変更が生じて列や行の挿入を行った場合、 特定のセルを参照して計算するマクロは実行できなくなるのでしょうか? その場合、簡単に修正する方法はありますか? 初心者にも分かるような回答をよろしくお願いいたします。

  • 指定したセルでファイル名を保存するマクロについて

    マクロ初心者です。 A1セルの文字をファイル名にして保存する方法を知りましたが、A1セルとB1セルの文字をファイル名にして保存したい場合、どのようにすれば良いか分かりません。 A1セルに企業コード、B1セルに企業名です。 ファイル名を「請求書(13579いろは株式会社様)」としたいのです。 実際のマクロを一部抜粋しますが、下記の場合はファイル名は 「請求書(13579様).xls」となります。 Dim WS As Worksheet Dim fname As String fname = "C:\保存先\" & ("請求書(") & WS.Range("a1").Value & ("様)") & ".xls" どなたか教えて下さい。 どうぞよろしくお願い致します。

  • エクセル:複数シートの一括処理

    お世話になります。 エクセルで1つのブックに複数のシートがあります。 書式は同じですが行数がそれぞれ違います。 A列で、データが入力されている一番下のセルの次の行から、エクセルの最終行である65536行までの行を全て選択して「削除」をしたいのです。(行の削除)しかも全シート一括で。 A列でデータが入っている一番下のセルがA550だった場合、551行~65536行までを全て選択→削除を行う。 これらの作業をするためのマクロを教えてください。

専門家に質問してみよう