
No.1ベストアンサー
- 回答日時:
Xls.Application.worksheets("Sheet1").Rows.Count
を使用するのが一般的なようです。
この回答への補足
先ほどオーバーフローがでると書きましたが
65536とでました
これはシートが展開できる限界値を示している、とおもいます
知りたいのは実データの入ったラストの行です
でも、この回答でありがとうございました
90%は解決できたので、ありがとうございました
さらに、たずねる、ともりで書いたのでなく、
一応報告として、挙げました
ありがとうございました
早速の回答ありがとうございました
オーバーフローしました、とでますが
いずれ解決すると思います
ありがとうございました
助かりました
LastRow=Xls.Application.worksheets("Sheet1").Rows.Count
No.5
- 回答日時:
こんばんは。
#2 のWendy02です。>End(xlUp).Rowの、xlUp、が未定義のエラーがでてしまいます
#4 さんで、説明されているとおりで、その理由は分かるのですが、こちらは、そのまま、Access VBAで、コードがとおっていましたね。一応、動作試験はしています。参照設定がされていたからかもしれません。
私のコードでは、解消方法は、Sub ....の下に、
Const xlUp As Integer = -4162
とすればよいだけです。
私の場合、基本的には、Access VBAで、Excelを使う場合は参照設定をしてしまいますね。何よりも、インテリセンスが使えますから、便利なのです。また、参照設定しないと、メモリの状態によっては、トラブルがあるときがあるからです。
Access は、参照設定の管理がExcelよりも優れていますから、そちらを使わない手はありません。
後は、imogasiさんの、原則論は、そのまま、おっしゃっている話のままです。(^^;
こちらは、どうしても、Excel中心に動いていますので、Access に関するものは、今ひとつ反応が鈍くなってしまいます。この申し訳ないのですが、私は、Excel中心になっています。
Access が分からないわけではないのですが、やはり、書法が違うようですね。Access Club で確認してきましたが、MSのサポートで、同じようなコードを見つけてきましたから、たぶん、開発途上に、何かの事情があったのでしょう。不勉強で申し訳ないです。
No.4
- 回答日時:
>End(xlUp).Rowの、xlUp、が未定義のエラーがでてしまいます
私もこれでエラーが出て何でだろうと思いました。
エクセルVBAで
Sub test01()
MsgBox xlUp
End Sub
をやるとー4192と出たので下記をやってみました。
下記はACCESSのモジュールに貼り付けて実行するものです。
Sub test04()
Dim ExcelApp As Object 'Excel.Application
Dim Book As Object 'Excel.Workbook
Dim Sheet As Object 'Excel.Worksheet
Set ExcelApp = CreateObject("Excel.Application")
'ExcelApp.Visible = True
Set Book = ExcelApp.workbooks.Open("C:\Documents and Settings\XXX\My Documents\_社員1.xls")
Set Sheet = Book.worksheets("_社員1")
Sheet.Select
' MsgBox Sheet.Range("A2")
Sheet.Range("A65536").Select
f = Sheet.Range("A65536").End(-4162).Row
MsgBox f
Set Book = Nothing
Set Sheet = Nothing
End Sub
エクセルの定数がうまく働かないようです。
この点の理屈のご説明は、他の方にお願いします。
ーーー
先般から質問者は、同じような質問をしてますが
>ACCESSのVB
ACCESSのVBAです
この質問は、むしろEXCELのVBAの質問です。
EXCELのVBAの本でも読んで、エクセルの機能とVBAのその知識を増やしましょう。
一応Set ExcelApp = CreateObject("Excel.Application")
でエクセルのVBAの世界が使えるようになったら、ExcelAppを冠してエクセルVBAの世界のコードが使えないかやってみる。
本件・上記のようにつまずくことがあれば、そこで色々考えたり、本やWEBを見たり、質問するでどうでしょう。
No.3
- 回答日時:
こんにちは。
Wendy02です。この前から、拝見させていただいているのですが、それは、Access のVBAなのですね。
前回、VBとおっしゃっていたので、やむを得ず、私は、VB6 でコードを作りましたが、私の書いた質問には、訂正のないままに閉めてしまわれました。私自身も、知らないことがあって、それはそれなりに、勉強しているのですから、イチゲンではなかったら、あまり、ヘンな無視の仕方はしないでくださいね。こういうことを書いている自分自身、知らなかったことを言い訳しているようで、みっともないのですが、一応、私は、.Net を含め、Excel VBAだけではありませんので、言語やアプリケーションソフト、また、場合によっては、Versionの指定はしてくださいね。同じようでも、違うものがあるので、分からなくなるのです。
今調べましたら、Access VBAの独特の書き方があるようですね。MSサポートも調べてみて、確認しました。Formモジュールにいれるので、いたし方がない、というところかもしれません。
ちょっと不安になって、プロセスを調べてみましたが、終了しても、Excelのオブジェクトは残していないようです。ただ、私は、やはり、Access でも、オートメーション・サーバーを使用する場合は、本来は、Applicationオブジェクトを確保していたほうが、安全のような気がしますね。今回は、書きませんでしたが。
[XL2000]GetObjectで開かれたファイルに文字を入力すると強制終了
http://support.microsoft.com/kb/413900/ja
トラブルは起きていないようですから、これは必要ないようです。
一応、変数は、分かりやすくするために、xlWb にさせていただきました。ただし、私は、見慣れていないせいか、親(Application)と子(Workbook)が逆になったような気がします。めったに、子から親を呼び出すコードは書きませんから。
Sub testExcel()
Dim xlWb As Object
Dim xlSh As Object
Dim i As Long
Const FNAME = "エクセルのファイル"
Set xlWb = GetObject(FNAME)
xlWb.Application.Windows(1).Visible = True
xlWb.Application.Worksheets(1).Activate
Set xlSh = xlWb.Worksheets("Sheet1")
'最終行 確保
i = xlSh.Cells(xlSh.Rows.Count, 1).End(xlUp).Row
'#.2 のmerlionXX さんの書き方も、Sheetオブジェクトがあるので、このコードなら変更できるはずです。
xlWb.Close False
Set xlSh = Nothing : Set xlWb = Nothing
MsgBox i
End Sub
この回答への補足
毎回親切丁寧な回答をいただき、ありがとうございました
前回VBとだけ書いてあれば、VB6と解釈されるのは
あたりまえで、こうした不注意が多大が迷惑をおかけしたことを
お詫びします
もしさしつかえなければ、という趣旨で補足質問させて
いただくならば、実行してみると、
End(xlUp).Rowの、xlUp、が未定義のエラーがでてしまいます
お時間があればで結構です
よろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- XML エクセルの拡張子XLSのファイルが開けなくなった 3 2022/10/19 11:30
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
このQ&Aを見た人はこんなQ&Aも見ています
-
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
-
4
ACCESSのVBAにてExcelに行を追加したい
その他(データベース)
-
5
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
6
アクセスvbaでエクセルブックを保存
その他(Microsoft Office)
-
7
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
8
アクセスからエクセルのシートを追加して、名前をつける方法
Excel(エクセル)
-
9
Access サブフォームでの選択行の取得
その他(データベース)
-
10
AccessVBAでExcelを起動し、罫線を引きたいのですが、Exc
Visual Basic(VBA)
-
11
AccessからExcelに罫線付で出力したい
Excel(エクセル)
-
12
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
13
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
14
access テキストボックスの値取得
Access(アクセス)
-
15
Accessでフォームから別フォームのテキストボックスの値を設定する
Visual Basic(VBA)
-
16
クエリのデータをテーブルに入れたい
Access(アクセス)
-
17
Access からオブジェクトとして開いたExcelのプロセスが終了しない
その他(データベース)
-
18
AccessVBAで作成したExcelファイルを削除する方法は?
Visual Basic(VBA)
-
19
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
20
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでファイルを閉じても...
-
エクセルにクリックすると指定...
-
メモ帳で開く設定を元に戻したい。
-
マルチモニター設定をしても2画...
-
Google Todoリスト
-
エクセルで1.5GBのファイルを開...
-
ExcelファイルがDoxillionに突...
-
CSVファイルでVBAを動かす方法
-
エクセルファイルがファイルの...
-
エクセルファイルに勝手に数字...
-
excelの拡張子xlsmが開けません
-
エクセルの塗りつぶしの色が勝...
-
Windows11で画面下の帯の部分で...
-
ACCESS エクスポートについて
-
エクセルで複数のブックで「元...
-
Lotus 1-2-3のファイルをExcel...
-
パワーポイントのファイルから...
-
エクセルのハイパーリンクがう...
-
エクセルの中にエクセルを添付...
-
400KBのエクセルは重いの?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでファイルを閉じても...
-
Windows11で画面下の帯の部分で...
-
エクセルの添付ファイルに記入...
-
エクセルを閉じた時、ノッペラ...
-
エクセルを開いたときのシート
-
メモ帳で開く設定を元に戻したい。
-
CSVファイルでVBAを動かす方法
-
エクセルで複数のブックで「元...
-
Lotus 1-2-3のファイルをExcel...
-
エクセルにクリックすると指定...
-
400KBのエクセルは重いの?
-
共有しているEXCELシートのアク...
-
CSVファイル
-
エクセルVBAでアクセスファイル...
-
エクセルの塗りつぶしの色が勝...
-
ExcelファイルがDoxillionに突...
-
メモ帳(拡張子log)の数字デー...
-
エクセルでの入力後の動きが遅い
-
CSVファイルをカンマ区切りのテ...
-
excel 突然容量が増える原因
おすすめ情報