- ベストアンサー
エクセルマクロでファイルを開かず行をしらべる方法
- エクセルマクロを使ってファイルを開かずに一番下の行を調べる方法について教えてください。
- 現在エクセルマクロを使用してファイルを開いて一番下の行を調べる方法を試していますがうまくいきません。
- 別の方法でファイルを開かずに一番下の行を調べるためのマクロを教えてください。
- みんなの回答 (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 してる間にふつーに開いて取得して閉じてしまった方が,安全で速いです。
その他の回答 (3)
- mitarashi
- ベストアンサー率59% (574/965)
こちらのNo.4に回答されています。 http://okwave.jp/qa/q6516638.html ExecuteExcel4Macro 最終行取得 で、OKWaveの検索窓で検索しても、見つかりませんね... 某有名検索サイトでみつかります。
お礼
本当ですね^^ なかなか見つからず苦労しました^^ ありでした~^^
- kokorone
- ベストアンサー率38% (417/1093)
試したわけではないですが、 気になる箇所をひとつ。 xlUp は、上方向への検索です。 xlDownが下方向の検索です。
- keithin
- ベストアンサー率66% (5278/7941)
「一番下」がどのようになっているのか不明ですが,とりあえず簡単な事例で 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 必要に応じて「一番下」の調べ方を工夫して結果を得てください。 #「開きたくない」ご相談は確かに多いですけどね。素直に開いて取得した方が遙かに簡単なのはお判りと思います。
お礼
その通りなんですがやっぱり開かないほうが・・・ねw アドバイスありです~^^
お礼
なるほど~! とてもわかりやすいご説明ありがとうございます!