- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでのセル範囲取得)
エクセルでのセル範囲取得
このQ&Aのポイント
- エクセルのVBAでセルの選択範囲を取得する方法について質問があります。
- 選択範囲の行数は`Selection.Cells.Count`で取得できますが、選択範囲の終了行を取得する方法を知りたいです。
- 選択範囲の行数ではなく、選択範囲の終了の行位置を取得する方法があるかどうか知りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- ja7awu
- ベストアンサー率62% (292/464)
回答No.3
- hana-hana3
- ベストアンサー率31% (4940/15541)
回答No.2
お礼
Selection.Addressで範囲指定の方向に関係なく、セル範囲(行)が取れる事を確認しました。 ただ、絶対参照で返ってくるので、行の位置(数値)を取り出す方法を考えました。 駄作ですが、下記の様になりました。 '************************************************************* セル範囲 = Selection.Cells.Address '開始行 '開始行と終了行の参照値から「:」より前を取得 St = Left(セル範囲, InStr(セル範囲, ":") - 1) '最初の文字「$」を切り取り St_c = Mid(St, 2, Len(St)) '「$」の文字より後ろを数値として取得 開始行 = CInt(Mid(St_c, InStr(St_c, "$") + 1, Len(St_c))) '終了行 '開始行と終了行の参照値から「:」より後ろを取得 En = Right(セル範囲, Len(セル範囲) - InStr(セル範囲, ":")) '最初の文字「$」を切り取り En_c = Mid(En, 2, Len(En)) '「$」の文字より後ろを数値として取得 終了行 = CInt(Mid(En_c, InStr(En_c, "$") + 1, Len(En_c))) '************************************************************* 最初の文字「$」を切り取っているのは、 2つ「$」がありますので、「$」文字2つ目以降の文字取得処理が面倒だったので、 「$」を1つにしているだけです。 また、選択列によっても参照値(列)が変わりますので、 これも面倒だったので、無理矢理ですが切り取りなどで取得出来るように考えてみました。 今のところ動作に問題は無いようです。 基本だけですが、まだまだ追加修正が必要です。 でも、Visual Basicの知識が役に立つとは思いもしませんでした。 まぁ、似た様な言語ですから当たり前なのかも? でも違うんですよねぇ。 ありがとうございました。