• ベストアンサー

エクセルのセル移動

調べても分からなかったのでお願いします。 A列でリストを作成して「1」「2」「3」を選ばせるようにしたのですが 「1」を選んだ時にはH列までセルを移動させて「2」を選んだ時には O列までセルを移動させて「3」を選んだ時にはZ列までセルを移動させるようにしたいのですが これって Excel でできますか? 一応 2003です。 宜しくお願い致します。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

対象シートのWorksheet_Changeイベントに登録すれば可能だと思います。 ただし、複数セルで一度に値が変更された場合、一番最後のセルの移動が有効になります。 例:A1が1、A2が3に一度に変更された場合、Z2が選択される。 Private Sub Worksheet_Change(ByVal Target As Range)  Dim rOne As Range  For Each rOne In Target '複数セルが変更された場合を考慮   If rOne.Cells.Column = 1 Then '1列目のみ処理    Select Case (rOne.Value)     Case 1      Range("H" & rOne.Row).Select     Case 2      Range("O" & rOne.Row).Select     Case 3      Range("Z" & rOne.Row).Select     Case Else      '1,2,3以外のときの処理が必要ならここに    End Select   End If  Next rOne End Sub

ookami1969
質問者

お礼

ご回答ありがとう御座います!! ものの見事にカーソルが飛んでくれました!! ありがとう御座います!! ただ、1行目は上手く行ったのですが 2行目以降は反応してくれません。。。 >If rOne.Cells.Column = 1 Then '1列目のみ処理 >'1,2,3以外のときの処理が必要ならここに >End If この3行を消してしまったからでしょうか? 全くの初心者で申し訳ありません。 3000行全部に挿入したいのですが 常に一番したの「123のいずれか」が反映されればOKなんですけど、再度 ご教授いただけないでしょうか。 お忙しい中 大変 恐縮では御座いますが 何卒 宜しくお願い致します。

ookami1969
質問者

補足

度々すみません。 2行目以降も「1」と「2」は反応してくれてました。 でも「3」が選べない状態です。 リストでは123の全部表示されますが 3を選んでも2までしか表示されずに2の所にカーソルが移動して3を選んで3のセルには移動しない状況です。 ご教授の程 宜しくお願い致します。 ちなみに下記は自分で勝手に修正したコードです。 Private Sub Worksheet_Change(ByVal Target As Range) Dim rOne As Range For Each rOne In Target Select Case (rOne.Value) Case 1 Range("Q" & rOne.Row).Select Case 2 Range("Y" & rOne.Row).Select Case 3 Range("AA" & rOne.Row).Select Case Else End Select Next rOne End Sub 度々すみませんが何卒宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

No.2です。 あのマクロはセルの値が変更された後の処理ですので、2行目以降で3が選択できないのは別な要因です。 何か入力規制をかけていませんか?

ookami1969
質問者

お礼

再登場 誠にありがとう御座います。 どうやら お察しの通り、リストの選択範囲に問題があったようです。 お騒がせして すみませんでした。。。 ご教示いただいたマクロで完璧に実施出来ました。 ありがとう御座いました!!

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

似たようなことで、考えてみた。 ーー セルに名前をつけます。 H1,O1,z1にセルH1,セルO1、セルZ1とでも名前をつけます。 準備として、z1の場合はz1セルを選択しておいて、名前ボックスにZ1と入れます。O1,H1の場合も同じ。 名前ボックスもドロップダウンなので、セルZ1をクリックすると、z1セルに飛びます。 ーー こういうのは本来VBAのイベントという考えを勉強しないと、出来ない。VBAの中級の課題です。 これでやるなら Sheet1のシートタブで右クリック 「コードの表示」をクリック 出てきた画面に下記を貼り付け。 下記のように短く中身3行できる。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub X = Array("", "H1", "O1", "Z1") Range(X(Target)).Select End Sub シートのA1で1,2,3 を選択すると所定セルに飛ぶ。 上記コードは、それなりに経験が詰まっているので、コードを少なくする技法、イベントという考えを含め、初心者にはすぐ思いつくのは無理だ。

ookami1969
質問者

お礼

すみません。。。 「お礼」の欄に記入してるつもりで「補足」の欄に記入していました。。 ご回答ありがとう御座います。 そうなんですか。。。。 中級レベルですね。。どうりで僕には解決の方法が分からないはずだ。。。 ちょっとドキドキしながらVBAの方をイジってみましたが、初心者のため案の定上手く行きませんでした。 ちょっと疑問に思ったのですが セルに名前を付けたのは どの辺で反映されているのでしょうか。 >X = Array("", "H1", "O1", "Z1") ここの部分を「セルの名前」に変更しないといけないのでしょうか? その場合「全角のカタカナ」でもOKですか? お忙しい中 大変申し訳ありませんが 何卒宜しくお願い致します。

ookami1969
質問者

補足

ご回答ありがとう御座います。 そうなんですか。。。。 中級レベルですね。。どうりで僕には解決の方法が分からないはずだ。。。 ちょっとドキドキしながらVBAの方をイジってみましたが、初心者のため案の定上手く行きませんでした。 ちょっと疑問に思ったのですが セルに名前を付けたのは どの辺で反映されているのでしょうか。 >X = Array("", "H1", "O1", "Z1") ここの部分を「セルの名前」に変更しないといけないのでしょうか? その場合「全角のカタカナ」でもOKですか? お忙しい中 大変申し訳ありませんが 何卒宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

隣のセルを使ってハイパーリンクを貼る方法です。 =IF(A1="","",HYPERLINK("#Sheet1!"&IF(A1=1,"H",IF(A1=2,"O","Z"))&1))

ookami1969
質問者

お礼

ご回答ありがとう御座います。 関数にもハイパーリンクってあるんですね。 でも この数式をコピペしても >#Sheet1!&1 というような文字列が出て来るだけで希望するセルにカーソルは飛んでくれませんでした。 何か解決方法をご存知でしたら再度ご回答をお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルでセル移動について

    エクセルのA1からD10の表に縦に数値を入力します。 各列によって空白のセルがあります。 A列の入力が終わればB1に、B列の入力が終わればC1に セル移動するにはどうすればいいでしょうか? (空白セルがあるため、Ctlキー+↑キーでは上手くいきません。) 教えて下さい。よろしくお願いします。  

  • EXCELでセルの移動マクロを作りたいのですが…

    EXCELについての質問です。マクロを使ってセルの移動をさせたいと考えています。 まず使うデータ範囲はA1:E11です。A1:E10にはデータが入っています。 ちなみに、A列には名前、B~E列には数字が入っており、A11:E11は合計が表示される設定しており、合計の場所はここに固定させたいのです。 その移動のさせ方ですが、 A1:E1に空欄があるとします。 そのときに、マクロを再生させるとA2:E10のセルに入っているデータ(値のみ)を上に移動させたいのです。 さらに、A3:E3の内容を消して空欄が出来たとします。 その時に同じ操作によってA4:E10のデータを上に移動させたいのです。 前者のマクロを単純に作ると縦に9つ分のセルを移動させるマクロでは、 A11:E11も上に移動させられてしまいます。なので、移動させるセルの一番下が10行目になるようなマクロを作りたいのです。 何がしたいのかといいますと、いらないデータを消した時に空欄をマクロで詰めてしまいたいのです。 乱文で判りづらいかと思いますが、知識のある方教えていただけないでしょうか。 よろしくお願い致します。

  • excelのセルの色を変える

    excel2000でsheet1にある列のうち たとえば sheet1のセルA1の値が「Z-1」だったら sheet2のセルB1を赤に塗りつぶす ってことはマクロでできますか? できなければVBAでどのようなコードになるのか教えていただけませんでしょうか?

  • エクセル2007 セルの移動でリンク先エラー

    エクセル2007で同シート内に、入力用の表と印刷用の表をそれぞれ作成しています。  例:A列入力用 B列印刷用・・・・B1セル(=A1)                        B2セル(=A2)   しかし、これだとA列のセルを移動させるとB列にエラーが発生してしまいます。  例:A4をA6に移動するとB4セルが(=A6)になってしまい、B6には[#REF!]がでてしまいます。  コピペは問題ないのですが、移動してもエラーがでないようにすることはできないでしょうか? 分かりづらい文で申し訳ありません。 よろしくお願いします。

  • Excelでデータの移動を方法

    Excelでデータを移動したいのですが、大量にありどうしようか困っています。 具体的には、シート1のA列に移動したいデータがあり、それを各シート(シート2・3・4・・・)の決められたセルにそれぞれ移動したいのですが、簡単に出来る方法などがありましたら、教えて頂けると助かります。 宜しくお願い致します。 ※Excel2007を使用しています。

  • エクセル 同じセル内の文字を分けたい・・・

    A列 専務(H16.11~) 取締役(H13.3~) ↓ A列      B列 専務    (H16.11~) 取締役   (H13.3~) こんな感じに同じセル内の文字を「(」以降をB列に移動することは可能ですか? お助けください!!

  • エクセルのセル移動について

    まずボタンを作成して、セルA1に条件1、セルA2に条件2を入力して、ボタンを押せばその条件1と条件2に合致するセルに移動するようにするには、やはりマクロとか組まなくてはいけないのでしょうか?何か方法を教えてください。宜しくお願いいたします。 【例】 例えばセルA1に【高橋】と入力して、セルA2に【4月1日】と入力します。 セルA30に【4月1日】があり、同じ行のF30に【高橋】があるとして、そのF30にセルを移動させたいのです。 解りづらくてすみません。

  • エクセルのセルの移動について

    言葉では表現しづらいのですが、精一杯お伝えしますので、汲み取ってください。^_^; ここでは仮にエクセルのワークシート上で『A1~C3』までの3行3列の表を作るとします。 通常、連続したデータを入力していく場合は、A1に入力後、タブキーで右にひとつ移動してB1のセルに任意の入力を行い、更にひとつ右のセルにタブキーで移動し、入力が済んだらC1で改行(エンター)で自動的にA2にセルは移動しますよね? これを縦横(行列)逆の考えで、A1に入力後、改行(エンター)キーでA2にセル移動、更に改行でA3に移動し入力が済んだら『自動(エンターキーの操作くらい)でB1セルに移動したい』のですが、どのような方法がありますか? 左手がデータの用紙をめくることでふさがっておりますので、できれば右手(テンキー)だけで出来る操作で何とかならないものかと思っています。 よろしくお願いします。

  • エクセルのセルをENTERで指定箇所に移動させる

    ということをしたいと思っています。といっても、そんなにややこしい移動でなく、 A1B1,A2B2,A3B3というように、 右に一度進んだら斜め下に行く、という作業を繰り返したいだけです。 つまり、B列の入力をした後は必ずA列に戻って次の行から入力できる状態にしたいのです。 なお、移動にはENTERを使いたいと思っています。 CTRLで入力するセルに順番と名前をつけてやる方法を自分で見つけてやってみたのですが、 これだと、一度でもこの範囲内からはずれてしまうと、また一からの入力になってしまいますし、 理想はこのA列B列のどこから入力を開始しても、B列入力の後は次の行のA列に移動する、ということなのですが、、、。 入力しないセルをロックして保護する、という方法もやってみたのですが、私が何か間違っているのでしょうか、C列をロックしてもうまくいきませんでした。 なぜこのようなことをしたいかというと、誰でも使いやすいフォーマットを作っておきたいため、 このようにセル移動するシートを作成したいのです。 どなたかもしいい案があればどうぞお願いいたします。

  • エクセル セル移動 マクロ

    ウインドウの固定を使用しています A列からAX列まであります C列固定しているためD列からAX列まで動くのですが エクセルの下の動かすスクロールバーでしか移動できなくて 大変なので 一行目の空いてるスペースにボタンを作成し 左に行くボタン  右に行くボタン を作成する 左右のボタンを1回押すとセルが3個程ずれる 左右ボタンは1行目の同じ位置で固定したいのですがどうすれば いいでしょうか?

TS8530の操作パネルの件
このQ&Aのポイント
  • TS8530の操作パネルが開いたままで紙が出てくるのはなぜ?
  • 排紙トレイの紙を取ると自動で引っ込まないのか?
  • TS8530の操作パネルが閉まらないのはなぜ?
回答を見る

専門家に質問してみよう