[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/03/08(Wed) 17:14
投稿者名:とびた
Eメール:
URL :
タイトル:
VBから選択セルされた位置を取得する方法
環境 WinXP-Pro  VB6.0-SP6  Excel2003 

お世話になります。
VBからExcelの選択されたセル位置のアドレスの取得方法について
アドバイスをいただきたく書込みさせていただきました。

    Set xlApp = CreateObject("Excel.Application.11")
    Set xlBook = xlApp.Workbooks.Open(strBookName, ReadOnly:=False)
    xlApp.Visible = True

    xlBook.Worksheets(1).Select
    strCell = Selection.Address(0, 0)


上記の様なコードで、1回目にBookを開いたときは、
選択されたセル位置を正常に取得出来るのですが、
一度、Bookを閉じて、再度、Bookを開いて、
セル位置を取得しようとすると、
〔実行時エラー91
 オブジェクト変数またはwihtブロック変数が設定されていません。〕
というメッセージが出て
    strCell = Selection.Address(0, 0)
のところで止まってしまいます。

Bookを閉じる時には、Excelも終了し、
Set xlBook = Nothing
Set xlApp = Nothing
を処理していることも確認しています。

どなたか、アドバイスをお願いします。

投稿時間:2006/03/08(Wed) 17:35
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: VBから選択セルされた位置を取得する方法
> Bookを閉じる時には、Excelも終了し、
> Set xlBook = Nothing
> Set xlApp = Nothing
> を処理していることも確認しています。

Excel のプロセスがタスクマネージャに残っていませんか?

Selection.Address(0, 0) この辺も原因の一つです。
ここの[Excel & Word 関係]のExcel のタスクを正常に終了できない現象 等をご覧下さい。


投稿時間:2006/03/14(Tue) 20:09
投稿者名:とびた
Eメール:
URL :
タイトル:
Re^2: VBから選択セルされた位置を取得する方法
花ちゃん さま

結果報告遅くなりましたが、
アドバイスありがとう御座いました。
Excelもタスクマネージャーで見た限りでは、
正常にコントロールできていました。
どうも
strCell = Selection.Address(0, 0)
のSelectionが問題だったようで、
いろいろ試行錯誤しましたが、

    intRow = xlApp.ActiveCell.Row
    intCol = xlApp.ActiveCell.Column

という方法で何回でもアクティブなセルの
取得が行えるようになりました。

ありがとう御座いました。