• ベストアンサー

EXCEL VBAでユーザーが選択しているアドレス取得

EXCELのVBAでアプリケーションを作成していますが、ユーザーが選択しているセルのアドレス取得方法がわかりません。連続、不連続ともにユーザーが選択せいているセルの数と、各セルのアドレス取得方法をご教授願います。

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

  • ベストアンサー
  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.4

下記のようにすれば希望の処理ができると思います。 --- Sub m() Dim a As Range Dim b As Range Set a = Selection Debug.Print a.Count For Each b In a Debug.Print b.Row Debug.Print b.Column Next Set a = Nothing End Sub

ihome2
質問者

お礼

ありがとうございました。無事取得できました。

その他の回答 (4)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.5

>連続しているセルの各アドレスはどのように取得するのでしょうか? 取り出したセルアドレスの利用(処理)目的はなんですか? For Each を使えばアドレスの取得は不要ですし、ループ内でセルアドレスのチェックも可能です。 Range(Selection.Address).Clear などの一括処理も可能です。

ihome2
質問者

お礼

ありがとうございました。無事取得できました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

MsgBox Selection.Address & " " & Selection.Cells.count

ihome2
質問者

お礼

ありがとうございました。無事取得できました。

ihome2
質問者

補足

ご回答ありがとうございます。 不連続だけの場合は$F$10,$G$16,$H$20 3のような形で取得できるのですが、連続+不連続の場合は$E$19:$F$22,$I$28,$J$30 10のような形になります。連続しているセルの各アドレスはどのように取得するのでしょうか?

noname#22222
noname#22222
回答No.2

>不連続にセルを選択する方法が思い付きませんが... Private Sub Worksheet_SelectionChange(ByVal Target As Range)   Debug.Print Target.Address End Sub [イミディエイト] $C$4:$F$9 $G$5 連続の場合は、数は、これで計算できます。

ihome2
質問者

お礼

ありがとうございました。無事取得できました。

noname#20377
noname#20377
回答No.1
ihome2
質問者

お礼

ありがとうございました。無事取得できました。

関連するQ&A

  • Excel(VBA)で1つのセルを選択したときのアドレス

    またまた 誰か教えていただけるとうれしいです エクセルのVBAであるセルを選択したときに そのセルのアドレス(A1)みたいなかんじの ものを取得する方法が知りたいのですが お願いします!

  • エクセルVBAでセル選択

    エクセル2000でリストを作成し、VBAで編集しようとしています。 A列に入力されているコードの先頭に「’」をつけて文字列とするための関数をB2のセルからA列のデータが入力されている最後のセルの隣までコピーしたいと思っています。 A列の最終セルを取得するVBAは分かったのですが、その値をB列の選択範囲として使用する方法がわかりません。 エクセルVBAは全くの初心者です。 どなたか教えてください!

  • ユーザーフォームでセルを選択

    エクセルのVBAでユーザーフォームに数値を入力してセルを選択することは可能でしょうか? 例えば、列はAに固定していいのですが、ユーザーフォームに「123」と入力してボタンを押せば「A123」のセルがアクティブになるようなユーザーフォームを作成したいのですが方法がわかりません。 よろしくお願いします。

  • エクセルVBAのユーザーフォーム

    こんばんは、エクセルVBAでユーザーフォームを作成しました。 そこに入力したものがブックに反映するわけですが、フォームに0(ゼロ)を入力した場合、ブック上のセルを選択すると0と入っているのですが、表示されません。なぜでしょう???? これができないとせっかく時間をかけて作ったのに、使えません。どなたかご存知の方よろしくお願いします!!!!

  • ExcelVBA 選択したセルの取得

    こんにちは。ゆきのです。 選択した範囲のセルに対して、Excelのマクロで 1回ずつ処理を行いたいと考えています。 まずセル数を取得したいのですが、  「selection.cells.count」でセル数を取得すると、  同じセルが複数回カウントされます。 またセルの範囲を取得したいのですが、  「selection.address」で範囲を取得すると、  重複したセルを含んだそれぞれの範囲が取得されます。 例えば、  (1)  「$A$1」を「ctl」+「左クリック」で3回選択した状態だと、  「selection.address」が「$A$1,$A$1,$A$1」となり、  「selection.cells.count」は「3」となります。  (2)  「ctl」+「左クリック」で「A1:B1」「A1:A2」を連続で選択した状態だと、  「selection.address」が「$A$1:$B$1,$A$1:$A$2」となり、  「selection.cells.count」は「4」となります。  ($A$1が2回カウントされます) この時、同じセルを複数回カウントせずにセル数を 取得することはにできるのでしょうか? (上の例の場合ですと、(1)が「1」、(2)が「3」と取得したいです。) また、複数選択で範囲を取得する場合に選択が重複したセルを 除いた状態の範囲を取得することはできるのでしょうか? 処理したセルを記憶させるなどの方法は考えてみたのですが、 別の方法はないかと思い、質問させていただきました。 どなたか、教えて頂けませんか?? よろしくお願いします。

  • VBAにて:開いているIEのアドレスを取得するには?

    セルに入力してあるアドレスを利用して、VBAからIEを開き、そのサイトを開くことが出来ます。 ところが、そのアドレスが現在は使われてなくて、 ”お探しのページが見つかりませんでした” と表示されることがあります。 この時、IEをVBAから閉じたいのですが、その判断方法として、 セルのアドレスとIEに表示されているアドレスが異なる ことを利用しようと考えています。 そのために、IEのアドレスの取得方法を知りたいのです。 ご存知の方お願いします。

  • VBAでマクロ実行中はExcelのマウスやキーボードを使ってセル選択などを無効にしたい

    お世話になります。 VBAで作成しております。 VBAでマクロ実行中は、Excelのマウスやキーボードを使ってセル選択などを無効にしたいのですが、どのようにすればよいでしょうか? ※Application.ScreenUpdatingはただ、画面の更新は止まっているのですが、セル選択などは裏で実行されているみたいで。。。 以上よろしくお願いします。

  • エクセルVBAで複数選択できるように設定したリストボックスの、選択され

    エクセルVBAで複数選択できるように設定したリストボックスの、選択されている項目の数を取得する方法はないでしょうか?

  • スタートメニューに表示される名前の取得(EXCEL

    EXCELのユーザー名(アプリケーションユーザ名)の変更を行いたいと考えいます。 (ツール⇒オプション⇒全般の中に表示される「ユーザー名」の部分) EXCEL立ち上げたら自動的に変更されるようなVBAを作成してるのですが、 変更する名前の取得方法がわかりません。 OSのログインユーザーの取得方法はわかるのですが、その情報ではなく、 スタートメニューをクリックした際に一番上に表示せれる名前の情報を取得して アプリケーションユーザー名を書き換えたいと考えています。 (私の環境の場合、OSのログインユーザー名は数字の羅列で、スタートメニューの中の名前が漢字氏名となっているためです) この情報を取得し、アプリケーションユーザー名を書き換えるVBAをご教授いただけますでしょうか。 よろしくお願い致します

  • エクセル2003でハイパーリンクのセルからURLアドレスを取得する関数はありますか?

    エクセル2003でハイパーリンクのセルからURLアドレスを取得する関数はありますか? ハイパーリンクを作成する関数は、=HYPERLINK("URLアドレス", "表示名称")で可能ですが、この逆で、"URLアドレス"を取得する関数を探しています。 例えばこのセルが、A1にあったとして、B1に =A1とすると、B1には「表示名名称」が表示されます。 C1に「URLアドレス」を表示させるVBAでなく関数が知りたいです。 無ければ、VBAでも構いません。 よろしくお願いいたします。

専門家に質問してみよう