アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問失礼します。
当方、現在VBAを使用して入力された文字の内容を判別して結果を返すというものを作っているのですが、制作の過程でユーザーが任意の場所に入力を行ったセルを取得する処理が必要になりました。
セルの範囲に関係なく、ユーザーが入力を行ったセルを取得するにはどうしたら良いのでしょうか?

お恥ずかしながらVBAに関する知識が乏しいため皆さんの力を借りたく質問させていただきました。
回答お待ちしています。

A 回答 (2件)

初心者ですが入力イベントをキャッチして以下のようにして使っています。


意味はあまりよくわかりません。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim adrs As String

adrs = Target.Address(RowAbsolute:=False, ColumnAbsolute:=False) '入力したセルのアドレスを取得


End Sub

以下はExcel2010のヘルプです。
● コード記述時の言語で参照範囲を表す文字列型 (String) の値を返します。
構文

式.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)

名前 必須/オプション データ型 説明
RowAbsolute
バリアント型 (Variant) 行部分の参照を絶対参照として返すには、True を指定します。
既定値は True です。
ColumnAbsolute
バリアント型 (Variant) 列部分の参照を絶対参照として返すには、True を指定します。
既定値は True です。
ReferenceStyle
XlReferenceStyle 参照形式を指定します。既定値は xlA1 です。
External
バリアント型 (Variant) 外部参照を返すには、True を指定します。
ローカル参照を返すには、False を指定します。既定値は False です。
RelativeTo
バリアント型 (Variant) 引数 RowAbsolute と引数 ColumnAbsolute の両方に False
が指定されていて、引数 ReferenceStyle に xlR1C1 が指定されると、相対参照の開始点を
含める必要があります。この引数は、参照の開始点を定義する Range オブジェクトを使用します。
    • good
    • 0

Excel(エクセル) VBA入門:ワークシートのイベント


http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vb …

ワークシートのイベントの中にある
”Changeイベント”
http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vb …

が該当しそうな気はしますけど?

Private Sub Worksheet_Change(ByVal Target As Range)

のTarget が編集されたセルを指しているものです。

あとは実際にやりたい事によるかもしれませんね。
⇒問題になりやすいのは入力を行なった場合より
入力されたもの複数同時にクリアしたときの処理を
どうするかでしょうね。
処理を飛ばすのか、処理が必要なのかで
回避するか否かの判断を追加する必要が出てきます。
    • good
    • 0

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