重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excel2000でVBAを使用して開発している物があるのですが、Oracleからデータを受信して内容をシートに表示させています。クリア処理として、受信したデータを消す処理(ClearContents+α)があるのですが、クリアしたにもかかわらず、タイトルの件最後のセル位置(Ctrl+Endキー)が記憶されたままになってしまいます。
試しに、シートの最終行までを削除してみたのですが、やはり記憶されたものは消えません。
そこで、記憶された最後のセルを消す方法がありましたら教えてください。
O/SはWindows98SEです。

A 回答 (3件)

>最後のセル位置(Ctrl+Endキー)が記憶されたままになってしまいます


この意味はよく理解できませんが・・・
私見では『Ctrl+Endキー』は正常に機能すると思われますが・・・


質問は、SpecialCells(xlCellTypeLastCell) のことではないのでしょうか。
ClearContents を行っても、SpecialCells(xlCellTypeLastCell) が示すセル位置は、今まで入力した一番下、一番右のセルのままです。

下のコードは、10行目までしか使っていない状態で、6~10行目を削除して、使用した最終セルを表示させるものです。
実行すると『$D$10』が返ってきます。このように最終位置が残っています。

これをクリアするために、ActiveWorkbook.Save を有効にして行うと 『$D$5』が返ってきます。

これからすると、一旦上書き保存すればいいことになります。
上書き保存したくなければ、別名で保存でしょうか。


上書き保存した状態で返る SpecialCells(xlCellTypeLastCell) を得るには、最下段セルから
.End(xlUp) をすれば入力最終行はつかめると思います。
ただこれは、コメントを設定したセルや条件付き書式を設定したセルを意識していません。

ご参考に。(当方,Excel2000です)


Sub CLS_1()
  Range("B1:D10") = "NNNNNNN"
  Rows("6:10").Delete

  'ActiveWorkbook.Save
  MsgBox ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Address
End Sub
    • good
    • 0
この回答へのお礼

使われたセル範囲内の最後のセル=Ctrl+End=SpecialCells(xlCellTypeLastCell) のつもりでいました。ExcelのVBAHelpをみたら、SpecialCells(xlCellTypeLastCell)の内容が使われたセル範囲内の最後のセルとなっていて、たまたまなのか、Ctrl+Endと大体一致していたので・・・
それはさておき。
ありがとうございました。出来ました。
削除まではしたのですが、保存しないと認識されないのですね。
この方法で行こうと思います。

お礼日時:2003/02/19 09:54

クリアや削除ではなく、空白行(例えば65536行)を削除したい行に貼り付けてみると言うのはどうでしょう?


貼り付けた後に、ファイルを保存すれば、記憶された最後のセルを消す事ができるハズです。
    • good
    • 0
この回答へのお礼

ありがとうございました。
確かにその方法でも出来ました。
保存することがキーポイントなのですね。

お礼日時:2003/02/19 09:59

Excelはそういうもんだと思ってましたが・・・


最後にセル(A1)を選択する処理を追加したらいかがですか?
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
ただ、私の聞きたい事とはちょっと違うみたいです。
質問の日本語が足りませんでした・・・確かにそのように受け取れますね。
質問の表現が判らないのでVBAHelpの言葉をそのまま引用してしまったもので。
失礼致しました。

お礼日時:2003/02/19 10:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!