• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロでファイルを開かず行をしらべたい)

エクセルマクロでファイルを開かず行をしらべる方法

このQ&Aのポイント
  • エクセルマクロを使ってファイルを開かずに一番下の行を調べる方法について教えてください。
  • 現在エクセルマクロを使用してファイルを開いて一番下の行を調べる方法を試していますがうまくいきません。
  • 別の方法でファイルを開かずに一番下の行を調べるためのマクロを教えてください。

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

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

>一番下の行を調べたい とは,一番下のセルの値じゃなくて行番号を調べたいの意味だったですかね。 ご質問で書かれているマクロのxlupがxldownの間違いで,それで一番下が調べられると考えているという状況なのだとすれば, sub macro2()  dim res as long  dim s as string  s = "C:\test\[test2.xls]sheet1"  res = ExecuteExcel4Macro("COUNTA('" & names & "'!C1)")  msgbox res end sub などのようで出来ます。 #前述の回答マクロも,同様に直します。 #VBAの予約語を変数名に使わないのはごく初歩的基本的なお約束なので,注意してください。 ついでなので幾つか補足しておくと, ・開かずに中身を取得したい と ・開いているところを見せずに中身を取得したい とでは,難易度も自由度も全然違ってきます。何が必要で何を目的にするのかをよく検討して,合理的に簡単な方法を選択していただければ良いかと思います。 ちなみにcreateobjectでナントナク納得しちゃうご相談が結構多かったりするんですが,これだって開いていることには違いないワケで,これを使うぐらいなら application.screenupdating = false してる間にふつーに開いて取得して閉じてしまった方が,安全で速いです。

osarusan0214
質問者

お礼

なるほど~! とてもわかりやすいご説明ありがとうございます!

その他の回答 (3)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

こちらのNo.4に回答されています。 http://okwave.jp/qa/q6516638.html ExecuteExcel4Macro 最終行取得 で、OKWaveの検索窓で検索しても、見つかりませんね... 某有名検索サイトでみつかります。

osarusan0214
質問者

お礼

本当ですね^^ なかなか見つからず苦労しました^^ ありでした~^^

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

試したわけではないですが、 気になる箇所をひとつ。 xlUp は、上方向への検索です。 xlDownが下方向の検索です。

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

「一番下」がどのようになっているのか不明ですが,とりあえず簡単な事例で Sub macro1()  Dim res  Range("A1").Formula = "=INDEX('c:\test\[test2.xls]sheet1'!A:A,COUNTA('c:\test\[test2.xls]sheet1'!A:A))"  res = Range("A1").Value  Range("A1").ClearContents  MsgBox res End Sub 必要に応じて「一番下」の調べ方を工夫して結果を得てください。 #「開きたくない」ご相談は確かに多いですけどね。素直に開いて取得した方が遙かに簡単なのはお判りと思います。

osarusan0214
質問者

お礼

その通りなんですがやっぱり開かないほうが・・・ねw アドバイスありです~^^

関連するQ&A