[[20040626003349]] 『Range("A65536").End(xlUp).Offset(1)の意味』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Range("A65536").End(xlUp).Offset(1)の意味』(初心者)

[マクロで・・・]

今、マクロを勉強中なんですが、この意味がわからないんです・・・。
教えてください。

Range("A65536").End(xlUp).Offset(1).Select


 セル A65536 で ctrl + ↑ キーを押して、
 ジャンプしたセルの 1個下のセルを選択。
 です。

 一般的にデータの最下行を求めるときに使います。 

 VBEで、それぞれの単語にカーソルを合わせてF1キーを押すと、
 ヘルプが起動しますので、読んでみて下さい。

  (INA) ( ~◇) Zzz


ありがとうございます。
ヘルプがでるなんて初めて知りました・・・。
少し詳しく教えて欲しいのですが、これはセルA65536でctrl+↑で
Range("A65536").End(xlUp).Offset(1).Select このような文章が作られないの
ですが。。。
それは、私のやり方がいけないのでしょうか?
それと、一般的にデータの最下行を求めると言う意味は分かったのですが、もう少し
詳しく教えて頂いてよろしいでしょうか?

Range→範囲
A65536→一番下のセル

その後のEnd(xlUp).Offset(1).Selectの意味を詳しく教えて頂けますか?

しつこくてすみません・・・。


 夜遅くに頑張っていますね。(^◇^ )

 >End(xlUp)
 ctrl + ↑ をマクロの記録すると出てきます。

 >Offset(1)
 これは記録では出てきません。
 ヘルプにあるように offset(行,列) と記述します。
 列が0 のときは省略できます。なので Offset(1,0)と同じです。
 これの意味は、対象のセルから、いくつズレるか表します。
 Range("A1").Offset(1,0) → A2 
 Range("B2").Offset(-1,-1) → A1
 となります。

 (INA)


遅いのにお返事ありがとうございます。
ヘルプで見た見たのですが、いまいち書いてある内容が理解できず・・・。
ついつい、聞いてしまいました。

では、最下行にデータを転記させていきたい場合は、記録では無理なんですね?
編集して、追加していかなくてはいけないと言う事でよろしいのでしょうか?
初心者なので、Msgbox以外は記録で作れるものと思っていました・・・。
記録できないとなると、覚えておかなくてはいけないって事ですよね?


 エクセルのコマンド(ボタンやメニュー)でできるものは
ほとんど記録で間に合わせることは出来ますが、
たとえば、
「毎回実行範囲が違う」
「その都度最適なシートを選択する」etc.
といったような本来人間の側で判断すべきところを
コンピューターに任せるような形にしようと思うと
記録したものに手を入れる必要がでてきます。
ちなみに、Offsetプロパティの記録は
 
マクロ記録開始>数式バーへ「A65536」を入力>Ctrl+↑
>「記録終了」ツールバーの「相対参照」ボタンをクリック
>↓キーでひとつ下のセルを選択
>「記録終了」ツールバーの「相対参照」ボタンをクリック
>「記録終了」ツールバーの「記録終了」ボタンをクリック
という手順で
 
    Application.Goto Reference:="R65536C1"
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
 
こういう感じのコードが出来ます。これを整理したものが

   Range("A65536").End(xlUp).Offset(1).Select
 
であると思えばよいでしょう。
結果はまったく同じなので整理するテクニックを慌てて覚える
必要はありません。
柔軟に対応できるマクロを作成しようと思うといろいろ覚えな
ければならないことはでてきますが、
いっぺんに何もかも覚えるのは大変なので、
記録でできる部分は記録でこなして、記録で出来そうにない部分だけ
エクセルの学校のような掲示板で質問して徐々に覚えてスキルアップ
していくのが、(ただで^_^;)上達する近道ではないでしょうか。
(KAMIYA)


 >編集して、追加していかなくてはいけないと言う事でよろしいのでしょうか?
 マクロの記録で自動作成されたVBAコードには、
 とても無駄が多いです。 
 簡単な処理なら問題ありませんが、
 おおきなマクロになると、処理速度もとても遅くなってしまいます。
 なので、 マクロの記録で基本となるコードを作ったり、
 自動作成されたコードを参考にするときは重宝しますが、
 それ以外では、ほとんど使用しません。(役に立たない。)

 >初心者なので、Msgbox以外は記録で作れるものと思っていました・・・。
 >記録できないとなると、覚えておかなくてはいけないって事ですよね?
 そうなります。
 手作業で出来ないことも、たくさんあるので、
 マクロ(VBA)にとって、「マクロ記録」は、ほんのわずかな機能です。

 参考になりそうなサイトを掲載しておきます。
http://www.sanynet.ne.jp/~awa/excelvba/kouza.html
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_010.html
http://t_shun.at.infoseek.co.jp/My_Page/Excel-VBA/vba_menu.htm

  (INA)


細かく説明をして頂いたおかげですごい参考になりました。
ありがとうございました。
何度も聞いてしまってすみませんでした。
こんなことで、何度も何度も質問する人もいないですよね?
教えていただいたHPで勉強したいと思います。


 参考書などで自分にとって分かりにくい文章だったりすると、
 完全に理解できなかったりしますから、
 このような、ちょっとした疑問を解決することが出来るのが、
 掲示板の良いところですね。

  (INA)

 あとは、本やヘルプでは「逆引き」がしにくいということでしょうね。
初心者の方の悩みはたいてい
「**がしたいけど何をどうしたらいいのかわからない」ですから。
スミからスミまで読まないと目的に適したものが見つけられない(^_^;)
Web検索や相談掲示板のほうがよほど役に立ちます。
(KAMIYA)


色々なアドバイスありがとございます。
「**がしたいけど何をどうしたらいいのかわからない」って、その通りなんですよ。
なので、こんな単純な質問をしてしまいました。
本も読みながらやっているんですが、自分のやりたいことがどこに書いてあるのかすらわからない状態なんです・・・。
でも、みなさんにアドバイスを色々と頂いたので、色々と試してがんばります。
ありがとうございました。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.