• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:直前のシートに戻る方法)

直前に作業していたシートに戻る方法

このQ&Aのポイント
  • 直前に作業していたシートに戻る方法
  • 直前に作業していたシートに戻るためのマクロがあるかどうかについてお聞きしたいです。現在は複数のマクロが必要であり、操作が煩雑ですが、1つのボタンですぐに直前のシートに戻れる方法があれば教えていただきたいです。
  • 直前に作業していたシートに戻るための効率的な方法について教えてください。現在は4つのマクロを使用しているため、操作が煩雑です。直前のシートに戻れるマクロがある場合は、1つのボタンで実行できるようにしたいです。

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

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

標準モジュールを作成し Module1に Public mSheetName As String を宣言 ThisWorkbookに Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) mSheetName = Sh.Name End Sub そして 1個のボタンのマクロに Sheets(mSheetName).Select としてください。

noname#96687
質問者

補足

どうもありがとうございます。 以下の手順で行いましたがボタンに登録できませんでした。 新しいブックで行いました。 Visual Basicを開きます。 挿入-標準モジュール そのModule1に Public mSheetName As String と入力しました。 ThisWorkbookに Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) mSheetName = Sh.Name End Sub と入力しました。 Sheet3にボタン(フォームコントロール)を作成しました。 マクロの登録で Sheets(mSheetName).Select と入力すると、入力した数式は正しくありません。 と出ます。 ------------- それと、実際のファイルで行う場合ですが、Module1、Module2、Module3、Module4とマクロで使用していますが、1つずつずらして、必ずModule1を使用しないと駄目でしょうか。なお、実験はModule1で行っています。 よろしくお願いします。

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

その他の回答 (2)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

ボタンを作成したらマクロの登録が開くと思います そのままでボタン数値_Clickになっていると思いますので そこで新規作成をすると以下のVBEが開きます。 Sub ボタン数値_Click() End Sub となりますのでその中に Sheets(mSheetName).Select を記入してください。 もしくは適当なマクロを作成しそれを登録してください。 Sub mRev() Sheets(mSheetName).Select End Sub とか作ってボタンのマクロに登録する > それと、実際のファイルで行う場合ですが、Module1、Module2、Module3、Module4とマクロで使用していますが、1つずつずらして、必ずModule1を使用しないと駄目でしょうか。なお、実験はModule1で行っています。 既にModule1があるのでしたら新たに作らなくても (Module1でなくても標準モジュールのどれかでいいです) Module1の一行目に(一番上) Public mSheetName As String を記入してください。 ここに記入することでどこからでも参照できる変数になります。

noname#96687
質問者

お礼

できました、どうもありがとうございます。 助かりました。 動いたときには感動しました。

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

どうしてシートの選択(クリック)では駄目で、わざわざマクロのボタン4つを用意する必要があったんですか?

noname#96687
質問者

補足

ありがとうございます。 話を単純化するために移動したいとだけ書いたのですが、 実際は、シート1に設置したマクロで、シート1関連のCSVファイルをシート5に読み込んでおり、 シート5を眺めた後シート1に戻るときに、B列以降のデータを削除しています(A列にはマクロのボタンがあるので残しています)。 削除して1に移動するマクロ、削除して2に移動するマクロ、削除して3に移動するマクロ、削除して4に移動するマクロということです。 4つのボタンだと間違って押してしまいそうなので、確実に元のシートに戻りたいので1つのマクロにしたいです。 よろしくお願いします。

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

関連するQ&A

  • VBA シートの切り替えができないようにするには

    こんにちは。いつもこちらでお世話になっています。 現在、VBAでフォームを利用したマクロを組んでいます。 あるボタンを押したときにマクロが実行された後、終了ボタンを押すまでの間はアクティブシートを移動してほしくない場合、シートの切り替えができないように制御したいのですが、ワークシートに直接イベントとして記述したくない場合はどうしたら良いでしょう? いっそのこと、ウインドウからシート選択ができないように画面を操作すれば良いのでしょうか? その方法はどうやって記述すればいいのでしょうか? それとも、シート切り替えのイベントをフォームで感知することができるのでしょうか? 困っています、、どなたか助けてください。 ウィンドウからシート選択ができないようにする方法だけでも結構です。 よろしくお願いします。

  • Excel VBA  Sheet1に記述していたのですがうまく動きません。

    シート1にコマンドボタンを配置し、Sheet1にそのままコードを記述していました。そこにマクロで記録したシート3の並び替えのコードを追記したのですがうまく動きません。 もしかしてこれは、Sheet1に記述していたためなのでしょうか。 このままSheet1に一連の作業として記述していきたいのですが、 どうしたらよいのでしょうか。 Excel2003を使用しています。 またModule1にSheet1のコードをコピーして移動させた場合は、どのようにすればコマンドボタンから実行させることができるのでしょうか。 宜しくお願い致します。

  • 別シートにコピペするマクロの作り方?

    シートAのデータをコピーして、 そのデータを別シートに貼り付ける…というマクロを使っています。 貼り付ける先のシートには、どんどんデータがたまっていく倉庫のような役割です。 私がくんだマクロは、次のような手順で処理をします。 1.まず、そのシートのA1を選択し、 2.《CTRL+下》のようなコマンドで、「データが初めて空白になるセル」まで移動します。 3.そして、そこに「はりつけ」。 4.貼りつけが終わったら、もともといたシートに戻ってくる。 ・・・そういうマクロなのですが、あまりに洗練されていないというか、 ボタンをおすたびに、コンピューターの画面が切り替わって、 「ああ。頑張って作業をしてくれているな」 ということが、わかるマクロです。 ・・・ たしか、こうした一連の作業を、もっと高速処理できるマクロの組み方があったように思うのですが、どのようなプログラムをくんだらよいでしょうか?

  • マクロ 各シートからシート1に戻るボタンを設置する

    各シートの同じ位置に「シート1に戻る」ボタンを付けるマクロを実行したいです。 前回教えていただいたことから、ボタンを設置するマクロはわかったのですが、 『2枚目以降のシートから、シートが終わるまで、各シートにボタンを設置する』マクロがわかりません。 1枚目は目次?的なページですので、 2枚目以降から、シートが終わるまで、決められた位置に「戻る」ボタンをつける。 という作業をマクロに記憶させたいと考えています。 ※下記は、こちらで教えていただいたものを参考にしたマクロです。 「戻る」という言葉をどこに入れてよいかもわからりません。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ Sub 戻るボタン設置() With ActiveSheet For i = 1 '幅140、高さ20のボタンを追加 .Buttons.Add(145 * i, 120, 140, 20).Text = i Next i End With End Sub

  • Excelのシート移動

    初めまして。エクセル超初心者です。  早速ですが、ここにBook1とBook2の二つのブックがあるとします。Book1で現在参照しているSheetをBook2の例えばSheet2の前に移動、というマクロ(VBA?)を作成し、ボタン一つで移動するようにしたいのですが、どの様にすればよいのでしょうか。お教えください。

  • 指定のシートにジャンプするエクセルのマクロ

    指定のシートにジャンプする、エクセルのマクロの組み方を教えてください。 シートが100近くあり、「更新」という名前のシートに移動するのが大変手間がかかって困っています。 Ctrボタン+jボタンで「更新」シートに移動するマクロをお願いいたします。 エクセルは2003です。

  • シートの保護

    お世話になります。 エクセルシートに保護をかけたいのですが、 シート内に、マクロの実行ボタンを作成しており、 そのボタンだけは実行できる様にしたいのですが、 やり方が分かりません。教えて頂きたく宜しく お願い致します。

  • 複数のシートにまたがるマクロの記述方法

    複数のシートにまたがるマクロって書けるのでしょうか?自動記録でマクロを作ってチビチビ編集しているのですが、シートを指定したマクロが書けません。4枚のシートがセットで連動しているのですが、一度のマクロの実行ボタンで全てを順序良く実行させたいのです。 ご存知の方教えてください。

  • シートの保護

    いつも助かっています。 エクセル2003です。「ツール」-「マクロ」でデーターの移動をさせています。 今度、必要な元表のセルだけロックをはずし、シートに保護をかけました。 そして、いままでようにマクロをかけましたが、うまくいきません。ラジオボタンも保護から はずすには? 保護されたシート内でマクロをする手順は? よろしくお願いします。

  • EXCELのシート名を指定してそのシートを開くマクロ、VBA?

    いつもお世話になります。 次々とシートを追加していくブックがあります。 Sheet1にマクロボタンを作成して、例えばSheet1のA1に「5」と入力すればSheet5が、「8」と入力すればSheet8が、開くようにしたいのですがそのようなマクロは可能でしょうか? (シートのハイパーリンクを利用した目次ではありません。) 初心者ですがよろしくお願いします。

専門家に質問してみよう