- ベストアンサー
プログラミング初心者の質問!Excelファイル内のアクティブなセルのアドレスを表示する方法
- プログラミング初心者が作成しているアプリケーションからExcelファイルを開き、アクティブなセルのアドレスを、フォーム上のラベルに表示したいがうまくいかない。
- シートを表示させることはできたが、アクティブなセルのアドレスを表示させることができない。
- Cellsの代わりにActiveCellを試してみたが、うまくいかなかった。どのようにすればよいか教えてほしい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
| 順次選択したセルのアドレスが表示されるにはどうしたらよいでしょうか? 「選択したセル」 ってことは 自分で選択するんですよね ActiveCell じゃなく Selection で考えるべきでは? 選択した後のセルは Application.Selection.Range で取得でき、 選択したセル範囲の行数は Application.Selection.Range.Rows.Count で取得できる ヒントは Selection と Range ですね 健闘を祈る
その他の回答 (2)
- phoenix343
- ベストアンサー率15% (296/1946)
Excelのヘルプ見てます? ActiveCellは ApplicationとActiveWindowクラスの配下にしかありませんよ。 それにシートのアクティブ化も最初にしないといけません。 ちゃんと以下のように例が載ってます。 === 次の使用例は、メッセージ ボックスにアクティブ セルの値を表示します。アクティブ シートでない場合、ActiveCell プロパティは失敗するので、プロパティを使う前に、Sheet1 をアクティブにしておきます。 Worksheets("Sheet1").Activate MsgBox ActiveCell.Value ===
補足
おっしゃるとおり、Excelヘルプみたら載ってました。 アドレス取り込めました。 ただ、シートを開いたとき、最初に選択されているセルのアドレスが表示されます。当然ですが。 xlSheet.Activate() rng = xlApp.ActiveCell Label7.Text = rng.Address 順次選択したセルのアドレスが表示されるにはどうしたらよいでしょうか? フォームに戻って再格納ボタンのようなものを押すと再格納する、というのが簡単かなと思いましたが、 フォームに戻ってrng.address格納しようとしても、シートが既にactivateじゃないから、実現できないですよね。 何か良い方法ないでしょうか?
- phoenix343
- ベストアンサー率15% (296/1946)
以下の一行を rng = DirectCast(oSheet.Cells(1, 1), Excel.Range) Set rng = ActiveCell で出来ませんかね(そもそもDirectCastする必要性を感じません) そもそもセルもRangeの一部ですから上記で可能なはずですが、、
補足
Setはいらないみたいです。Setとかいても自動で消されます。 rng = ActiveCellでは (ActiveCellは宣言されてません)の構文エラー。 rng = xlSheet.ActiveCellではデバックで、 ('System.MissingMemberException' の初回例外が Microsoft.VisualBasic.dll で発生しました。)というエラーになります。
お礼
Selectionでできました! 何度も丁寧に教えて下さりありがとうございました◎