エクセルファイルの最終行を検索する方法

このQ&Aのポイント
  • エクセルファイルの最終行を調べる方法について説明します。
  • フォルダ内にある複数のエクセルファイルに一括で最終行を調べる方法についても解説します。
  • マクロを使用することなく、エクセルファイルの情報を取得する方法を紹介します。
回答を見る
  • ベストアンサー

ブックを閉じたエクセルファイルの最終行を検索

・フォルダ内に複数のエクセルファイル(xlsx)がある ・それぞれのファイルに記載されている内容や量は異なる (少ないと200行。多いものだと3000行以上) これに対して以下の作業を行う方法は無いでしょうか? (1)ファイルを開かずに、それぞれのファイル内のデータがある最終行を調べる 例:book1のデータが300行あるのなら、「300」を返すような (2)フォルダ内にあるエクセルファイルに一括で(1)を行う 自分でもマクロなりでこれらのファイルの情報を取得しようと試行錯誤しております。 ExecuteExcel4Macroなど自分でも試してみたのですが、全くうまくできません。 マクロに限らず、これが出来るのであればツールややり方は問いません。 (1)、(2)の片方だけでも問題ございませんので、どなたかご教示頂けないでしょうか。

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

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

具体的なデータの入り具合とか何も情報が無いんですが、とりあえず 例えばセルに =COUNTA('C:\folder\[Book1.xlsx]Sheet1'!A:A) などのようにしておけば、何件データが記入されてるか数えられそうです。 そもそも何て名前のブックがあるのか調べるところから、毎回やり直さなきゃならないなら、ファイルを巡回してファイル名を調べる(応用:所定の計算式を書かせる)マクロを利用します 例: sub macro1()  dim myPath as string  dim myFile as string  dim n as long  mypath = "C:\folder\"  myfile = dir(mypath & "*.xls*")  do until myfile = ""   n = n + 1   cells(n, "A") = myfile   myfile = dir()  loop end sub #それぞれのブックの具体的なシート名までイチイチ調べなきゃならない状況なら、隠しながらそれぞれ開いて調べます。

oretower
質問者

お礼

ありがとうございます! 漠然とした質問をしてしまい申し訳ありません。 ご丁寧にお答えいただき感謝致します

関連するQ&A

  • エクセルマクロでファイルを開かず行をしらべたい

    こんにちは! エクセルマクロでファイルを開かず一番下の行を調べたいのですが、どうしたらよいでしょうか? 色々試行錯誤して、下記を組んでみましたが、上手くできませんでした。 test1のエクセルに下記のマクロを入れてあります。 C直下のtestフォルダの中のtest2.xlsのsheet1のファイルを読み込みたいです。 Dim line As Long Dim names As String names = "C:\test\[test2.xls]sheet1" line = ExecuteExcel4Macro("'" & names & "'!R1C1").End(xlUp).Row 「ファイルを開かず一番下の行を調べる」ことができれば、上記のマクロを動くようにするでも、別のマクロを提示するでも構いませんので、アドバイスのほどよろしくお願いいたします。

  • エクセルで複数ファイルのシートから一つのシートへ結合したい

    エクセル上で、 Aフォルダ内にファイルBook1~数十個があり、Book1にはシート名「sh1」、Book2にはシート名「st2」のみがぞれぞれあります。シート内のデータ数はバラバラで何行のデータがあるか不明ですが、列数は同一です。 このファイルすべてを開かずに、今開いている、「加工.xls」のsheet1にまとめたいと思っています。(sh1の下にsh2、その下にsh3・・・を繰り返して、「加工.xls」のsheet1に貼り付ける。行間は空けず一覧表にする。フォルダ内のファイルが無くなったら終了する。)こんな感じのをマクロでやりたいと思っています。 ファイルを開かないで行う方法は、何とか過去の質問を調べてApplication.ExecuteExcel4Macroを使ってやろうとしていますが、応用が利きませんでした。開いていないファイルの最終行をどう取得選択してsheet1に持ってくればよいか分からず悩んでいます。 よろしくお願いいたします。

  • Excel 操作したいbookをActiveにする

    こんにちは。 Excel 2007を使用しています。 今、作業手順がマクロで書いてあるファイルをmacro.xlsm 操作したいファイルをobject.xlsxとします。(名前は適宜変わります) また、両方のファイルをExcelで開いておきます。 マクロを実行させたいのですがmacro.xlsmをActiveにしないと マクロが実行できませんし、macro.xlsm自身を操作対象として 作業が始まってしまいます。 一番望ましいのはmacro.xlsmをActiveにしてマクロ開始キー (Ctrl+Shift+M) または「ボタン」などで対象となるファイルを選択して 操作を実行させたいのです。 なお条件としてExcelには上記の2つのファイルしか開いていません。 方法をご存じの方お教えください。

  • ファイルを閉じたままの外部参照で最終行の行数取得

    こんにちは。VBA初心者、の段階から脱出を試みているものです。 ここやその他サイトを調べて、EXCELファイルを閉じたまま外部参照するには、Application.ExecuteExcel4Macroを使えばいいことがわかったのですが、参照先の最終行などの情報を取得するにはどうしたらいでしょうか。 私が調べた限りでは、以下のような単純に値を取得する方法しか説明されておらず、VBEのヘルプにも詳しい説明がありませんでした。 Cells(1, 1) = Application.ExecuteExcel4Macro _ ("'C:\My Documents\[Book2.xls]Sheet1'!R1C1") 参照先から値を取得する際に、必要な範囲だけ見るようにしてできるだけ速く処理できるようにしたいと思っています。 (したがって、 65535行目までループするとか、OPENメソッドで一旦ファイルを開くような手法は避けたいと思っています) なにかいい方法がありましたらご教示いただけないでしょうか。 よろしくお願いします。

  • エクセル-別のbookで同様のマクロ実行

    エクセル-別のbookで同様のマクロ実行 最初あるBook1に入っているmacro1はそのbook1のsheet1を処理するように作成しました。 次にBook1を開いたまま、Book2を開きそのsheet1に対してmacro1と同等の機能を実行したい場合は通常どうするのでしょうか。 (1) Book2にBook1のマクロをコピー (2) book2のマクロを開き、表示されるBOOK1 macro1を実行する。 (2) 場合でもうまくいくのでしょうか。Sheet1に対してやりたいことの論理は同じとします。試してみたらといわれそうですが、まず識者の説明をお聞きしたいのです。

  • マクロで5個のBOOKのデータをBOOK1に転記

    エクセルマクロで対話型でBOOK2~6の5個のデータを BOOK1のシート1に順番で転記したいです。 BOOK2~BOOK6は作業者にファイルを選択させたいです。 BOOK2~BOOK6は作業の都度行数がBOOKごとに変わります。 (500~5,000行でばらつきます) 流れとしては、 1.BOOK1を開いてマクロを軌道 2.エクセルのファイルを開くウィンドーが出る 3.ファイルを選択させる(例:マイネットワーク内のBOOK2を選択) 4.ウィンドーの開くをクリックする 5.転記1回目   指定したファイルが開いてデータが   BOOK1のシート1に転記される   この1回目は1行目からデータがある最終行まで。   その後BOOK2は閉じられる 6.メッセージボックスで「転記完了」と表示 7.メッセージボックスの「OK」をクリックすると   エクセルのファイルを開くウィンドーが出る 8.ファイルを選択させる(例:マイネットワーク内のBOOK3を選択) 9.ウィンドーの開くをクリックする 10.転記2回目   指定したファイルが開いてデータの中の2行目~最終行までを   BOOK1のシート1の最終行の次の行から転記を行う。   (NO.5のBOOK2が1,000行の場合1,001行目から    BOOK3のデータ2行目以降が転記される)   その後BOOK3は閉じられる 11.この作業を計5回行う   (転記3~5回目も転記するデータは2行目~最終行) 13.メッセージボックスで「5個のBOOKの転記が終了」と表示 14.メッセージボックスの「OK」をクリックすると   Call 編集   でSub 編集 というプロシージャーが起動する Sub 編集は出来上がってます。 (BOOK1のシート1を編集します。) NO.1~NO.14のマクロ記述を教えてください。 自分で作成した記述では全然駄目でした。 よろしくお願いします。

  • エクセルファイルについて

    調べてみましたが、答えが見つけられなかったので質問させてください。 エクセルファイルを開くと例えば「book1.xlsx」だった場合、「~$book1.xlsx」というアイコンが透明なファイルがあります。 「~$book1.xlsx」とは何ですか? よろしくお願いします。

  • 2つのEXCELのブック間でのマクロの呼び出し方

    お世話になります、 あるExcelのブック「Book1」でセルが選択された イベントで別のブック「Book2」に登録されている マクロ「Macro(str,number)」を呼び出したいのですが どのようにすればいいでしょうか? よろしくお願いします。 具体的なソース等がありましたらよろしくお願いします。

  • Excel マクロで、ファイル形式を一括変更したい

    Excel マクロで、ファイル形式を一括変更したいです。 デスクトップにある「Aフォルダ」の中に xlsファイルが100ほどあります。 それらのファイルを xlsxファイルに変更して、同じくデスクトップにある「Bフォルダ」に保存したいです。 わからないなりに、つぎはぎでやってみたのですが、保存場所の指定がうまくいかなくて困っています。 よろしくお願いします

  • 複数のエクセルファイルのシートを1枚のシートに

    100個以上のエクセル(CSV)ファイルの1枚目のシートに同じ書式のファイルが多数(100個程度)有るのですが、これを1枚のシートにまとめる方法は無いのでしょうか? 一枚のシートの行数は数行~50行以下で、全部のデータを1枚に纏めてデータ処理したいのですが、一括は無理でも出来るだけ簡単に出来る方法をお願いします。 尚、当方VBAは不得手で、あまり長いと(長くなくても)動くまでの試行錯誤の手間ひまで100枚のファイルのシートへのコピペが終わってしまう程度の実力ですので、ご配慮?お願い致します。

専門家に質問してみよう