• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:名前付き範囲の3列目の最終行の1つ下を選択)

Excelの名前付き範囲でジャンプする方法

このQ&Aのポイント
  • Excelで名前付き範囲を使用してジャンプする方法を紹介します。特に、縦長の商品仕様書でよく使われる「包装仕様入力欄」という範囲をジャンプする方法をスマートに書くことができます。
  • Excelの名前付き範囲を使用して商品仕様書の「包装仕様入力欄」にジャンプする方法を説明します。ジャンプするためには、範囲名「包装仕様入力欄」の左から2列目の最終行の次の行を選択します。
  • Excelの名前付き範囲を使って、商品仕様書で「包装仕様入力欄」にジャンプする方法を紹介します。ジャンプするためには、範囲名「包装仕様入力欄」の左から2列目の最終行の1つ下のセルを選択します。この方法は、Excelの環境が異なる場合でもスマートに動作します。

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

  • ベストアンサー
回答No.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などというダミーの下辺などは要りませんが、たぶん、そうとは限らないはずです。

Angela_M
質問者

お礼

自身の思慮の浅さを実感しています。 まず「包装仕様入力欄」のすぐ下に別のデータが入力されています。 ですのでダミーの下辺を用いる方法は使えません。 説明不足で申し訳ありません。 「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 ありがとうございます。

その他の回答 (1)

  • weboner
  • ベストアンサー率45% (111/244)
回答No.1

データに空欄がなければ Range("包装仕様入力欄").End(xlDown).Offset(1).Select これで行けると思います

Angela_M
質問者

お礼

ありがとうございます。 一列目の最終データの一つ下(添付図のH257)が選択されました。

関連するQ&A

専門家に質問してみよう