• ベストアンサー

エクセルvbaでアクティブ(選択された)なセルを順に取り出すには

エクセル97のvbaでいろいろ試したいのですが、標記の事について 分かりません。出来ないことなのか、簡単なことなのかも分かりま せんのでよろしくお願いします。下記を作成しても左上の1つしか 取り出せません。 Sub サンプルマクロ2() For Each a In ActiveCell s = a.Value MsgBox (s)  Next a End Sub

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんにちは。 ActiveCell を Selection にしましょう。

yfujii
質問者

お礼

試したい事ができました。 素早いご回答に感謝致します。

その他の回答 (1)

回答No.2

SelectionCellってサポートしてたかな? まず、ActiveCellというのはひとつしかありません。 たとえ範囲でセルを選んでも、現在入力できるセル一つだけです。 したがって、そのあたりがActiveとSelectの違いになります。 こんなマクロはどうでしょう。 Sub サンプルマクロ2() Dim r1, r2, c1, c2 As Integer r1 = ActiveCell.Row c1 = ActiveCell.Column r2 = r1 + Selection.Rows.Count - 1 c2 = c1 + Selection.Columns.Count - 1 For m = c1 To c2 For n = r1 To r2 s = Cells(n, m) MsgBox (s) Next n Next m End Sub セル範囲は自分で(手動で)選ぶものと仮定して、 選んだ直後は一番左上のセルがアクティブセルです。 したがって最初の値はCells(r1,c1)となります。 次にSelection.Rows.Count は選んだセルの行数ですから、 r2,c2はそれぞれ選んだ範囲の右下のセル番地です。 ちょっと解りづらいかもしれませんが、お試し下さい。

yfujii
質問者

お礼

’アクティブなセル’とは’入力できる1つのセル’という事を知りませんでした。勉強になりました。素早いご回答に感謝いたします。

関連するQ&A