- 締切済み
Excel VBAで入力を行ったセルの取得方法
質問失礼します。 当方、現在VBAを使用して入力された文字の内容を判別して結果を返すというものを作っているのですが、制作の過程でユーザーが任意の場所に入力を行ったセルを取得する処理が必要になりました。 セルの範囲に関係なく、ユーザーが入力を行ったセルを取得するにはどうしたら良いのでしょうか? お恥ずかしながらVBAに関する知識が乏しいため皆さんの力を借りたく質問させていただきました。 回答お待ちしています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- n-jun
- ベストアンサー率33% (959/2873)
Excel(エクセル) VBA入門:ワークシートのイベント http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_event.html ワークシートのイベントの中にある ”Changeイベント” http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_event.html#change が該当しそうな気はしますけど? Private Sub Worksheet_Change(ByVal Target As Range) のTarget が編集されたセルを指しているものです。 あとは実際にやりたい事によるかもしれませんね。 ⇒問題になりやすいのは入力を行なった場合より 入力されたもの複数同時にクリアしたときの処理を どうするかでしょうね。 処理を飛ばすのか、処理が必要なのかで 回避するか否かの判断を追加する必要が出てきます。
- endlessriver
- ベストアンサー率31% (218/696)
初心者ですが入力イベントをキャッチして以下のようにして使っています。 意味はあまりよくわかりません。 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 オブジェクトを使用します。