[[20130417195336]] 『アクティブセルの列の一番下の行のセルにジャンプ』(田吾作) ページの最後に飛ぶ

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

 

『アクティブセルの列の一番下の行のセルにジャンプ』(田吾作)

 こんばんは、よろしくお願いいたします。

 エクセル2002,ウィンドウズXP(SP3)です。

 たとえば、A列ですと、A列の最終行(2002の場合はA65536)からCtrl+↑で
 最終行にジャンプできます。
 これを、一旦A65536を選択してからCtrl+↑することなくA列がアクティブになっているときは
 A列のどの行がアクティブになっていてもデータが入っている最終行にジャンプするショート
 カットキーはないか調べています。

 Ctrlキー+Endキーの同時押しですと、出来たかに見えましたが、以前データが入っていてデータ
 をクリアした後もその以前データが入っていたセルを最終行とみなしてジャンプしてしまいます。
 また、これはA列ではなく一番右下のセルにジャンプしてしまいます。

 これを、可能ならA列の最終行、次善の策で「データが入っている」最後のセルにジャンプする
 ショートカットキーをご存知の方、ご教示お願いいたします。

 ※ジャンプ→セル選択→最後のセル
 でも以前データが入っていてクリアしたセルを最後のセルと判断してジャンプしてしまいます。

 エクセル操作は詳しくないんだけど、Ctrl/↓ でできない?
 ただし、

 >A列のどの行がアクティブになっていても

 たとえば A1,A2が空白で A3から下に値がはいっていて、A1をアクティブにして実行すると
 A3にジャンプするけど。でも、もう一度やると、次の空白の前でとまるね。

 (ぶらっと)

 ぶらっとさん、ご回答ありがとうございます。

 Ctrl+↓ですと、途中に飛び飛びにデータが入っている場合は
 ずーっとキーを押し続けないと一番下まで行きません。
 また、行き過ぎるとA65536セルに行ってしまいます。
 A65536に行くと後はCtrl+↑でA列のデータが入っている最終行
 に行くのですが、一発で、というわけには行きません。

 ショートカットキー一発で、というのは出来ないのでしょうか?
 方法がありましたらご教示頂きましたら幸いです。

 (田吾作)

 >ショートカットキー一発で、というのは出来ないのでしょうか?

 詳しくないのでわからないな。
 操作が、一発 ということでよければ

 ・シートの左上の名前ボックスに"A65536" といれてエンター
 ・Ctrl/↑

 この操作をマクロ記録して、できあがったマクロにショートカットキー(たとえば z) を設定。
 あとは、Ctrl/z をおすと実行される。
 ただし、シート上のどの列のセルがアクティブになっていようとCtrl/zを押すと「A列」の最後のデータにとぶ。
 そのセルがある列の ということだろうから、この操作でできあがったマクロのコードを、1ヶ所だけ直す。
 生成されるマクロコードは、エクセルバージョンによって、異なるかもしれないので、この方式でよければ
 そちらでマクロ記録してできあがったコードをアップすれば、具体的な直し方は、皆さんからアップされると思う。

 (ぶらっと)


 VBAでいいなら
 ショートカットキー: Ctrl + ↑

 1) ThisWorkbook モジュール:

 Private Sub Workbook_Activate()
     Application.OnKey "^{UP}", "SelectLastCell"
 End Sub

 Private Sub Workbook_Deactivate()
     Application.OnKey "^{UP}"
 End Sub

 2) 標準モジュール:

 Sub SelectLastCell()
     With ActiveCell.EntireColumn
         .Cells(.Cells.Count).End(xlUp).Select
     End With
 End Sub

 (seiya)

 ぶらっとさん、seiyaさん、ご回答ありがとうございます。

 一般機能では出来なさそうですね。
 マクロで、とのことですが、一つのブックだけでなく、全てのブックで
 使いたいのです。

 マクロが含まれているブックもありますが、マクロを記述していないブック
 もあります。

 全てのブックにマクロを記述していくしかないのでしょうか?

 (田吾作)

 この機能をいかしたいPCユーザにマクロブックを配布して、それをアドインしておくという方法があるね。
http://hp.vector.co.jp/authors/VA029807/jim_carry-xla-exp.htm
他にも解説ページは多いと思うので「共通操作 アドイン」あたりで検索してみて。
「PERSONAL.XLS」の利用でもいいかも。

 (ぶらっと)

 全てのブック、って所に難が在るけど。
=HYPERLINK("[Book1.xls]Sheet1!A"&MAX(INDEX(ROW(A2:A65536)*(LEN(A2:A65536)>0),0)),"最終行")
 
(みやほりん)


 ぶらっとさん、seiyaさん、みやほりんさん、ご回答ありがとうございます。

 アドインを試してみました。
 下記のコードを標準モジュールとThisWorkbookモジュールに記述して
 アドインファイル(xla)として保存しました。
 そして、アドインリストウィンドウで保存したアドインブックの名前に
 チェックを入れてCtrl+Alt+HomeやCtrl+Alt+Endをやってみたら最終行や
 最初の行にジャンプしてくれました。
 これで解決、と思ったのですが、VBSから起動したブックでは自作ショート
 カットキーが利きませんでした。

 VBSには下記のように記述しています。

 Dim xl
  Set xl=CreateObject("Excel.Application")
  xl.visible = true
  xl.Workbooks.Open ("C:\Documents and Settings\hoge\abc.xls")
  set xl = Nothing 
  wscript.quit

 VBSで起動したブックに対してもアドインの自作ショートカットキーが
 使えるようにするにはどうすればいいでしょうか?
 ご教示よろしく願いいたします。

 '標準モジュール
 'アクティブセルの列のデータが入っている最終行にジャンプ
 Sub SelectLastCell()
  With ActiveCell.EntireColumn
   If .Cells(.Cells.Count).Formula = "" Then
      .Cells(.Cells.Count).End(xlUp).Select
   Else
      .Cells(.Cells.Count).Select
   End If
  End With
 End Sub

 'アクティブセルの列のデータが入っている最初の行にジャンプ
 Sub SelectFirstCell()
  With ActiveCell.EntireColumn
   If .Cells(1).Formula <> "" Then
      .Cells(1).Select
   Else
      .Cells(1).End(xlDown).Select
   End If
  End With
 End Sub

 'ThisWorkBookモジュール

 Private Sub Workbook_Open()
  Application.OnKey "^%{HOME}", "SelectFirstCell"
  Application.OnKey "^%{END}", "SelectLastCell"
 End Sub

 (田吾作)

 いままで、このケース、やったことがなかったので、試してみた。
 確かに! アドインが有効になっていない。というか、VBE画面でプロジェクトエクスプローラを見ると
 通常にオープンしたときに読み込まれるアドインブックが存在しないね。

 で、VBSのみならず、通常のブックで、New Application を生成して、その別エクセルでWorkbooks.Open とやっても
 その別エクセルにはアドインが読み込まれていない。

 そういう仕様なんだろうか?
 識者さんからのアドバイスをお待ち乞う。

 思いつきの追記) VBS側で、アドインファイルも開くとどうなるかな?

 (ぶらっと)

 ぶらっとさん、ご回答ありがとうございます。

 >思いつきの追記) VBS側で、アドインファイルも開くとどうなるかな?

 ばっちりでした。↓のようにすることで自作ショートカットキーが作動しました。

 dim xl

 Set xl=CreateObject("Excel.Application")
 xl.visible = true
 xl.Workbooks.Open ("C:\Documents and Settings\tago\Application Data\Microsoft\AddIns\myaddin.xla")
 xl.Workbooks.Open ("C:\Documents and Settings\tago\デスクトップ\tagosaku.xls")
 set xl=Nothing 
 wscript.quit

 ありがとうございました。

 (田吾作)

コメント返信:

[ 一覧(最新更新順) ]


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