みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

プログラミング初心者です。お世話になります。

プログラミング初心者です。お世話になります。

作成しているアプリケーションからExcelファイルを開き、アクティブなセルのアドレスを、フォーム上のラベルに表示したいのですが、うまくいきません。

シートを表示させるところまではできました(下記サイトをまるまる参考にしました)
<http://www.atmarkit.co.jp/fdotnet/dotnettips/717excelfile/excelfile.html>

下記のように、A1の中身を表示させることはできたのですが、アクティブなセルのアドレスを表示させることができません。CellsのところをActiveCellにしたり、いろいろ試したのですが、だめでした。

Dim sCellVal As String
Dim rng As Excel.Range ' Range オブジェクト

rng = DirectCast(oSheet.Cells(1, 1), Excel.Range)
sCellVal = rng.Text.ToString() ' A1セルの内容
Label1.Text=sCellVal

どのようにすればよいでしょうか??

投稿日時 - 2010-01-31 13:10:44

QNo.5637672

すぐに回答ほしいです

質問者が選んだベストアンサー

| 順次選択したセルのアドレスが表示されるにはどうしたらよいでしょうか?

「選択したセル」
ってことは
自分で選択するんですよね

ActiveCell
じゃなく
Selection
で考えるべきでは?


選択した後のセルは
Application.Selection.Range
で取得でき、
選択したセル範囲の行数は
Application.Selection.Range.Rows.Count
で取得できる

ヒントは
Selection

Range
ですね

健闘を祈る

投稿日時 - 2010-02-06 19:15:43

お礼

Selectionでできました!
何度も丁寧に教えて下さりありがとうございました◎

投稿日時 - 2010-02-17 23:07:34

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

Excelのヘルプ見てます?

ActiveCellは
ApplicationとActiveWindowクラスの配下にしかありませんよ。

それにシートのアクティブ化も最初にしないといけません。
ちゃんと以下のように例が載ってます。

===
次の使用例は、メッセージ ボックスにアクティブ セルの値を表示します。アクティブ シートでない場合、ActiveCell プロパティは失敗するので、プロパティを使う前に、Sheet1 をアクティブにしておきます。

Worksheets("Sheet1").Activate
MsgBox ActiveCell.Value
===

投稿日時 - 2010-01-31 18:42:28

補足

おっしゃるとおり、Excelヘルプみたら載ってました。
アドレス取り込めました。
ただ、シートを開いたとき、最初に選択されているセルのアドレスが表示されます。当然ですが。

xlSheet.Activate()


rng = xlApp.ActiveCell

Label7.Text = rng.Address

順次選択したセルのアドレスが表示されるにはどうしたらよいでしょうか?

フォームに戻って再格納ボタンのようなものを押すと再格納する、というのが簡単かなと思いましたが、
フォームに戻ってrng.address格納しようとしても、シートが既にactivateじゃないから、実現できないですよね。

何か良い方法ないでしょうか?

投稿日時 - 2010-02-04 07:04:12

ANo.1

以下の一行を

rng = DirectCast(oSheet.Cells(1, 1), Excel.Range)

Set rng = ActiveCell

で出来ませんかね(そもそもDirectCastする必要性を感じません)
そもそもセルもRangeの一部ですから上記で可能なはずですが、、

投稿日時 - 2010-01-31 14:40:43

補足

Setはいらないみたいです。Setとかいても自動で消されます。

rng = ActiveCellでは

(ActiveCellは宣言されてません)の構文エラー。

rng = xlSheet.ActiveCellではデバックで、

('System.MissingMemberException' の初回例外が Microsoft.VisualBasic.dll で発生しました。)というエラーになります。

投稿日時 - 2010-01-31 15:52:18

あなたにオススメの質問