![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Excel2010環境とExcel2003環境が混在する社内で縦長の商品仕様書を作っています。
どの商品も途中で「包装仕様」という一連の入力項目が出てくるのですが、商品によって「包装仕様」が登場する行が異なります(場合によっては列までも異なります)。
そこで「包装仕様入力欄」という名前付き範囲を作成し、その名前付き範囲の「資材名」の新規入力欄に一発でジャンプできると便利だと考えました。
資材名の新規入力セルは範囲名「包装仕様入力欄」の左から2列目になり、範囲名「包装仕様入力」内においてだけならその列の新規入力セル以下には何も入力されていませんが、右隣の列には補足事項が記入されるため、範囲名「包装仕様入力欄」の2列目の最終行の1つ下のセルを狙って選択する必要があります。
Range("包装仕様入力欄")(Range("包装仕様入力欄”).Rows.Count, 2).End(xlUp).Offset(1).Select
で確かに動作しますが、「Range("包装仕様入力欄")」を2度も記述しているなど、あまりスマートではありません。もう少しスマートな記述があるのなら教えてください。
![「名前付き範囲の3列目の最終行の1つ下を選」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/d/30094834_54af0fa94a317/M.jpg)
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などというダミーの下辺などは要りませんが、たぶん、そうとは限らないはずです。
自身の思慮の浅さを実感しています。
まず「包装仕様入力欄」のすぐ下に別のデータが入力されています。
ですのでダミーの下辺を用いる方法は使えません。
説明不足で申し訳ありません。
「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
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ドロップダウンリストを2列で...
-
autocad 数値が表示されなくな...
-
エクセル 日付超過でポップアッ...
-
Excelについて
-
ドロップダウンリスト 自動表...
-
VBAの日付チェックでオーバーフ...
-
求人情報で「SAP入力可能な方」...
-
autocadLTで添え字文字
-
DocuWorksでのスキャンデータ取...
-
ACCESSでインクリメンタルサーチ
-
小数点以下の入力規則
-
EXCEL VBAの入力規則で小数点桁...
-
エクセルの質問です。 行数の最...
-
excelのInputBoxで日本語入力OF...
-
マクロ 入力規則は残し文字の...
-
エクセルVB ポップアップウィ...
-
名前付き範囲の3列目の最終行の...
-
PCのキーボドで「ヲ」と言う...
-
ローマ字入力で「-」の入れ方
-
囲い文字の単語登録
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ドロップダウンリスト 自動表...
-
autocad 数値が表示されなくな...
-
Excelについて
-
VBAの日付チェックでオーバーフ...
-
ドロップダウンリストを2列で...
-
excelのInputBoxで日本語入力OF...
-
エクセルVB ポップアップウィ...
-
マクロ 入力規則は残し文字の...
-
エクセルで半角カナや特殊文字...
-
エクセル 日付超過でポップアッ...
-
Excelで日報を自動で作成したい...
-
バーコードリーダーを使ってフ...
-
特殊漢字「はし」(橋のつくり...
-
アクセス2000 クエリ抽出でBet...
-
小数点以下の入力規則
-
弥生会計05、「摘要」入力について
-
エクセルのマクロの使い方
-
ACCESSで日付型のフィールドにY...
-
【エクセルでシフト作成】週休2...
-
autocadLTで添え字文字
おすすめ情報