VBのモジュールで、開いているExcelシート上のアクティブセルの座標、値を
取得するにはどうすればよろしいのでしょうか。まずVBモジュールと参照対象のExcelシートを起動します。次ににExcelシート上のあるセルを選択し、VBモジュールの[セル情報]等のボタンにより、選択されているセルの座標、値をメッセージボックスに表示したいのです。よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

下記コードで実現できそうです。


Sub test()
Dim t As Range
Set t = Application.ActiveCell
MsgBox t.Address, vbInformation + vbOKOnly, "座標"
End Sub

この回答への補足

Rangeというデータ型がVB6.0ではコンパイルエラーになるのですが?

補足日時:2002/02/19 13:26
    • good
    • 0
この回答へのお礼

Range データ型は Excel.Rangeで定義すればよろしかったのですね。
ありがとうございました。完璧です。

お礼日時:2002/02/19 14:50

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル アクティブセルからアクティブセルの行と指定の列を選択するマク

エクセル アクティブセルからアクティブセルの行と指定の列を選択するマクロをつくりたい。

仕事で、エクセルA列からAL列までのフィールドのデータを毎日50件程登録する要件が出て参りました。
受付表として、受付番号・住所・製品名など登録し、このリストを使用して随時受付内容の確認を致します。

現在、マクロによって、業務負荷を軽減しようと考えております。(マクロはVBのコントロールボックス「再生」ボタンでしか使用できないレベルです)

その一つとして、アクティブセルを選択し、コントロールボックスのボタンを押すとアクティブ行の指定列まで移動するマクロを作りたいと思っております。
例)
 <D列を指定列とする>
  A1を選択 →D1
F10を選択→D10

コントロールボックスは自分で作成する事が出来ます。
どなたか、上記の構文をアドバイス頂けませんでしょうか。

宜しくお願いします。  

Aベストアンサー

Range("D" & ActiveCell.Row).Select

これだけで

Q新しいシートのセル値→既存シートセルへ

 以前、ここでお世話になったものです。

 まだまだVBAは勉強不足で、ちゃんと説明できるかすらもわかりませんが、どうぞ宜しくお願いします。


 見積書を作っています。

 項目名を入力し、そのセルをダブルクリックすると、その項目の明細シートが作られるというものを作っています。

 できたワークシートの名前は、その項目名と同じものになるようにしています。




 教えていただきたいのは・・・


 明細の合計金額値を、項目のシートの金額欄に自動で入るようにしたいのですが、明細シートの名前が解らないのでどうやって指定すればいいのかわかりません。

 オブジェクト名でもできませんでした。

 やっぱり、あらかじめ名前を”明細1”、”明細2”という風に決めておかないと指定できないのでしょうか?


 ・・・ということです。


 どうか教えてください。

  
  

  

 

Aベストアンサー

質問のシートの例が具体的にかけていないので、質問していることが正確に判らない。
この程度のレベルでは、仕事でVBAを使う(対顧客のことで、誤ると重大な信用失墜にもなることだろう。だから十分経験もないのに初心者が乗り出すのは危険)のは無理と思う。
今回の質問も丸投げではないか。何かやってみて行き詰まった点の質問になってない。
回答が出てもも、回答の要点も理解できるかどうか不安がある。
>項目名を入力し、そのセルをダブルクリックすると
初心者はVBAのイベントということを十分理解しないで、エクセルなど高級ソフト(これらではそういう仕組みは茶飯事であるが)のマネが直ぐできると思わないこと。
ーー
少なくとも
(1)明細シートの様子(列、列データ見出し、行の様子)主要項目だけで良い
(2)請求書シート(主要な項目だけで良い)
の例示ぐらいして質問すること。
ーー
明細シート1行が請求書1枚に対応するのか。
>明細の合計金額値を
こんなもの請求書に持ってきた請求明細のデータでやれば仕舞いでは。
SUM関数を入れたら姉妹ではないか。
合計額1本で請求書を出すようなことをするのか。
>あらかじめ名前を”明細1”、”明細2”という風に決めておかないと指定できないのでしょうか?
意味・意図不明。

請求明細は請求書に出すのだろう。明細数はばらばらだと思うが、1ページ限度を超える明細数の場合、どう考えているのか。
ーー
いい性に印刷するのではないのか。
得意先を指定して、その得意先分だけ印刷するのかまとめて印刷作業を済ますのが普通ではないか。
ーー
私ならVBAでは、明細書様式は1ページ分だけ設けて使い、中身を順次入れ替えることで、データ1ページ作成ー1ページセル範囲ごとに印刷、を繰返すが、質問者は、どう構想しているのか。

質問のシートの例が具体的にかけていないので、質問していることが正確に判らない。
この程度のレベルでは、仕事でVBAを使う(対顧客のことで、誤ると重大な信用失墜にもなることだろう。だから十分経験もないのに初心者が乗り出すのは危険)のは無理と思う。
今回の質問も丸投げではないか。何かやってみて行き詰まった点の質問になってない。
回答が出てもも、回答の要点も理解できるかどうか不安がある。
>項目名を入力し、そのセルをダブルクリックすると
初心者はVBAのイベントということを十分理解しないで...続きを読む

QExcelセル座標値の渡し方

VBAの初心者です。
Excelでアクティブセルの座標値を取り出して、マクロの中で、その行全体、あるいは列全体を指定して挿入や削除をさせたいのですが、どうしたらよいのでしょうか。教えて下さい。よろしくお願いします。

(例)アクティブセルが C7 であるとき、Rows("7:7") に1行挿入する。


Sub 行挿入()

'セル座標値を読み取ってその行全体を指定するデータの渡し方?????

Rows("7:7").Select
Selection.Insert Shift:=xlDown

End Sub

Aベストアンサー

こんにちは。

Dim wR as Long
Dim wC as integer
wR = ActiveCell.Row
wC = ActiveCell.Column
'
Rows(wR).Select
Selection.Insert Shift:=xlDown
Columns(wC).Select
Selection.Delete Shift:=xlLeft

Qアクティブセルの行のセルを複数指定選択-VBA

アクティブセルの行のセルを複数指定選択-VBA

コマンドボタンを押すとアクティブセルのある行のセルを個別に選択したいのですが、どのようにVBAにコードを入力すればいいのか悩んでいます。

例:選択したい列(セル)A:C,F:I
アクティブセルがA2にある時、コマンドボタンを押してA2,B2,C2,F2,G2,H2,I2を選択する。
  アクティブセルがA10にある時は、A10,B10,C10,F10,G10,H10,I10を選択する。

ご回答お待ちしています。宜しくお願い致します。

Aベストアンサー

いくつかありますが、2つほど。

'------------------------------
Sub test222()
 Dim R As Long
 Dim myAdrs As String
 R = ActiveCell.Row
 myAdrs = "A" & R & ":C" & R & ",F" & R & ":I" & R
 Range(myAdrs).Select
End Sub

'------------------------------

Sub test333()
 Dim R As Long
 Dim myRange As Range
 R = ActiveCell.Row
 Set myRange = Cells(R, "A").Resize(1, 3)
 Set myRange = Union(myRange, Cells(R, "F").Resize(1, 4))
 myRange.Select
End Sub
'-------------------------------

以上です。

Q初心者です。VBでセルの値を違うシートに連続コピーする方法を教えてください

・A、Bシートが有りBシートのV17からAU17迄数値が入っています。この値をAシートのL6からV6、L10からV10、S14からAU17へ一個づつコピーしたいのですが、以下の様な式しか私には出来ません。
Sheets("B").Activate
Range("v17").Copy
Sheets("A").Activate
Worksheets("A").Range("L6").Select
Selection.PasteSpecial Paste:=xlValues
・For文とかで繰り返しできる方法を教えて下さい。宜しく御願いします。

Aベストアンサー

マクロの記録を使ってSheetBのV17~11セル選択してコピー、SheetAのL6からV6を選択して貼り付け、として記録して見てください。ほかの2箇所も同様にすれば、記録できますが、できれば記録したマクロを改造してみると勉強になるかと思います。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報