• ベストアンサー

Excel シート間の移動方法

シート(1)~シート(4)がある状態で、シート(1)~シート(3)にはシート(4)へ移動するための ボタンまたはハイパーリンクを設置します。 この状態でシート(4)に戻るボタンまたはハイパーリンクを置きたいのですが、シート(1)~シート(3)のどのシートから遷移してきたのか認識し、遷移元のシートに戻るようにしたいと考えています。 どのようにすれば実現できるでしょうか。 VBAが必要になるかと思いますが、初心者ですのでできるだけ詳しくご回答 いただけれたら幸いです。 お手数ですがご教示の程お願いいたします。

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.3

私が書かないでも、プロフェッショナルな誰かが書いて くれそうな気がするんですけどね・・・。 少なくともVBAのコードはセルに書くもんじゃないですよ。 VBEditorで、専用のプロジェクト上に書くもんです。なので とりあえず、このへんに目を通していただいて・・・と。 http://home.att.ne.jp/zeta/gen/excel/c03p01.htm 了解されたら、まずは「標準モジュール」に下のコードを 書き込んで下さい。 Sub test1() Sheets("Sheet3").Range("A1").Value = ActiveSheet.Name Sheets("Sheet3").Activate End Sub Sub test2() Sheets(Range("A1").Value).Select End Sub この状態で、Sheet1に何か図形を描いて右クリックし、「マクロの 登録」を選択して、出てきたダイアログから「test1」を選んでください。 そうすると、Sheet1に書いた図形をクリックすれば、Sheet3に飛んで Sheet3のセルA1に、"Sheet1"と書かれている筈です。 同様にSheet2に図形を描いて、マクロ「test1」を登録し、こいつを クリックしてみるとSheet3に飛び、セルA1には"Sheet2"と書かれて いる筈です。 ここで、Sheet3に図形を描いて、マクロ「test2」を登録すると、セル A1に書かれたシートに飛んでくれる筈。これで基本的な処理はうまく 行くと思います。 あとは、VBAのコードやセルの書式設定を考えて、このセルA1に 書かれちゃうシート名を「どうやって隠すか」「誤って上書きされない ようにするにはどうすればいいか」「Sheet3に飛んだときに、シート 名を書いたセルに飛んじゃっていいのか」を考える・・・って手順に なります。 こんなもんでいいでしょうか? これ以上の解説は上記のURLを よく読んでから質問いただけると、長く書かないで済むのですが・・・。

bz0715
質問者

お礼

具体的に教えていただきありがとうございます。 教えていただいた通り実行し、問題なく処理が行えました。 勉強不足なところもあり申し訳ありませんでしたが 大変助かりました。 どうもありがとうございました。

その他の回答 (2)

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.2

VBAのコードくらいは書けるという前提で発想だけ。 別のシートからhジャンプしてくるときに、Sheet4のどこかの セルに、ジャンプ元のシート名を、例えば Sheets("Sheet4").Range("A1").Value = ActiveSheet.Name という感じで書き出しておく。 で、戻る処理に Sheets(Range("A1").Value).Select とすると、戻れるって話ですけど・・・。 要は「シートにVBAの変数を置いてしまえ」ってことです。

bz0715
質問者

補足

ご回答ありがとうございます。 イメージはできるのですがVBAでどう書いてよいかわかりません。 Sheets("Sheet4").Range("A1").Value = ActiveSheet.Name ですが、これは上記のSheet4を実際のワークシート名に直して シート4のどこかのセルに入力しておけばよいのでしょうか? また、VBAは Sheets(Range("A1").Value).Select と入力しただけではエラーとなってしまいます。 他にも書いておかなければならない文章があるかと思いますが どう書いてよいかわからなく困っています。 もう少し詳しくアドバイスをお願いできないでしょうか。

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.1

新たにボタンを設置しなくても ハイパーリンクで飛んだのであれば、 [Alt]+[←]で元のシートに戻ることが可能なはずです。

関連するQ&A