- ベストアンサー
Excel シート間の移動方法
シート(1)~シート(4)がある状態で、シート(1)~シート(3)にはシート(4)へ移動するための ボタンまたはハイパーリンクを設置します。 この状態でシート(4)に戻るボタンまたはハイパーリンクを置きたいのですが、シート(1)~シート(3)のどのシートから遷移してきたのか認識し、遷移元のシートに戻るようにしたいと考えています。 どのようにすれば実現できるでしょうか。 VBAが必要になるかと思いますが、初心者ですのでできるだけ詳しくご回答 いただけれたら幸いです。 お手数ですがご教示の程お願いいたします。
- みんなの回答 (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を よく読んでから質問いただけると、長く書かないで済むのですが・・・。
その他の回答 (2)
- FEX2053
- ベストアンサー率37% (7991/21371)
VBAのコードくらいは書けるという前提で発想だけ。 別のシートからhジャンプしてくるときに、Sheet4のどこかの セルに、ジャンプ元のシート名を、例えば Sheets("Sheet4").Range("A1").Value = ActiveSheet.Name という感じで書き出しておく。 で、戻る処理に Sheets(Range("A1").Value).Select とすると、戻れるって話ですけど・・・。 要は「シートにVBAの変数を置いてしまえ」ってことです。
補足
ご回答ありがとうございます。 イメージはできるのですがVBAでどう書いてよいかわかりません。 Sheets("Sheet4").Range("A1").Value = ActiveSheet.Name ですが、これは上記のSheet4を実際のワークシート名に直して シート4のどこかのセルに入力しておけばよいのでしょうか? また、VBAは Sheets(Range("A1").Value).Select と入力しただけではエラーとなってしまいます。 他にも書いておかなければならない文章があるかと思いますが どう書いてよいかわからなく困っています。 もう少し詳しくアドバイスをお願いできないでしょうか。
- shintaro-2
- ベストアンサー率36% (2266/6245)
新たにボタンを設置しなくても ハイパーリンクで飛んだのであれば、 [Alt]+[←]で元のシートに戻ることが可能なはずです。
お礼
具体的に教えていただきありがとうございます。 教えていただいた通り実行し、問題なく処理が行えました。 勉強不足なところもあり申し訳ありませんでしたが 大変助かりました。 どうもありがとうございました。