- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:名前付き範囲の3列目の最終行の1つ下を選択)
Excelの名前付き範囲でジャンプする方法
このQ&Aのポイント
- Excelで名前付き範囲を使用してジャンプする方法を紹介します。特に、縦長の商品仕様書でよく使われる「包装仕様入力欄」という範囲をジャンプする方法をスマートに書くことができます。
- Excelの名前付き範囲を使用して商品仕様書の「包装仕様入力欄」にジャンプする方法を説明します。ジャンプするためには、範囲名「包装仕様入力欄」の左から2列目の最終行の次の行を選択します。
- Excelの名前付き範囲を使って、商品仕様書で「包装仕様入力欄」にジャンプする方法を紹介します。ジャンプするためには、範囲名「包装仕様入力欄」の左から2列目の最終行の1つ下のセルを選択します。この方法は、Excelの環境が異なる場合でもスマートに動作します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 どのみち、このようなコードには、「スマート(Cool)」なものなどはないと思います。 もし、あえて言わせていただけるなら、[名前定義]を使った時点で、VBA側からみると、あなた(ワークーシート・ユーザー)任せになってしまいますから、プログラマからは嫌われます。本来なら、その中身を調べなくてはなりません。 >Range("包装仕様入力欄")(Range("包装仕様入力欄”).Rows.Count, 2).End(xlUp).Offset(1).Select >「Range("包装仕様入力欄")」を2度も記述しているなど、 スマートかそうでないかというよりも、RangeのItemプロパテイ(省略可)のパラメータは数字なので、予め変数で、Range("包装仕様入力欄”).Rows.Countを取ればよいのですね。プロパティの中で計算をさせなくてもよいのです。 簡単に書くなら、以下のでもよいと思います。 '// With Range("包装仕様入力欄") '20は、適当なダミーの下辺 .Cells(.Rows.Count + 20, 2).End(xlUp).Offset(1).Select End With '// 必ず空白があるなら、20などというダミーの下辺などは要りませんが、たぶん、そうとは限らないはずです。
その他の回答 (1)
- weboner
- ベストアンサー率45% (111/244)
回答No.1
データに空欄がなければ Range("包装仕様入力欄").End(xlDown).Offset(1).Select これで行けると思います
質問者
お礼
ありがとうございます。 一列目の最終データの一つ下(添付図のH257)が選択されました。
お礼
自身の思慮の浅さを実感しています。 まず「包装仕様入力欄」のすぐ下に別のデータが入力されています。 ですのでダミーの下辺を用いる方法は使えません。 説明不足で申し訳ありません。 「Range("包装仕様入力欄")」の最下部まで入力されているとき、End(xlUp)を使うと最上部が選択されてしまうこと、さらにその状態で空白セルがあるときは空白セルの2つ下のセルが選択されることも少し問題です。 なので、入力範囲の最下セルに何かが入力されているときはExit Subで逃げることにしました。 Dim n As Integer n = Range("入力テーブル").Rows.Count With Range("入力テーブル")(n, 2) If .Value <> "" Then MsgBox "データ一杯" Exit Sub Else .End(xlUp).Offset(1).Select End If End With ありがとうございます。