• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAの動作異常)

Excel VBAの動作異常についての質問

このQ&Aのポイント
  • Excel VBAの動作異常について質問があります。Sheetの配置でVBAを作成していたところ、いつの間にかSheetが増えてしまいました。そのためコマンドボタンが機能しなくなりました。
  • 質問内容は以下の3点です。 1) Sheetが増える理由は何か? 2) 存在しないSheetをプロジェクトエクスプローラから削除する方法はあるか? 3) 存在するSheetを戻す方法はあるか?
  • 解決方法として、Sheet111に記載されているプログラムをSheet1にコピーすると正常に動くようになりました。しかし、Sheetの増える原因や削除・戻す方法について教えていただきたいです。

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

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (776/5751)
回答No.1

・Sheet111(クイズ)をSheet1(クイズ)に戻す方法は? プロパティウィンドウのオブジェクト名を変更すればできると思うのですが、 その前にSheet1を削除しないとですよね。 Sheet1はプロジェクトエクスプローラには見慣れないアイコンなので、 Worksheetではないシート形式のような気がします。 右クリックして「解放」が使えますか。 新しいブックにシートをコピーした方が早いかも知れないです。

ken-nosuke
質問者

お礼

ご回答ありがとうございます。 >Sheet1はプロジェクトエクスプローラには見慣れないアイコンなので・・・ ⇒確かにSheet1,Sheet11のアイコンはSheet111(クイズ)と異なりThisWorkbookと同じです。これが謎解きのカギでしょうか? >右クリックして「解放」が使えますか。 ⇒「解放」はグレー表示で使えません。「解放」が使えるのは標準モジュール内のみのようです。 >新しいブックにシートをコピーした方が早いかも知れないです。 ⇒Sheet111(クイズ)のSheetのみのコピーができました。シート名(Sheet111⇒Sheet1)は元に戻せません。また発生原因は不明のままですがとりあえず解決しました。ありがとうございました。

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

その他の回答 (4)

  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.5

回答No.4の記載漏れです 「新しいファイルにコピーしたけれど、*.xlsb ファイルを閉じて元の *.xlsm を再度開くと、すべてのオブジェクトが消えており」 のリンク元はこちらです。 VBA ThisWorkbookが2つある https://teratail.com/questions/120961

ken-nosuke
質問者

お礼

何度も回答ありがとうございます。 紹介いただいたサイトは、英文サイトのようで、 翻訳してもわかりにくく、書いてある通りにやったつもりですが、解決しませんでした。原因もよくわからないままです。 結局No.1の方の「新しいbookにコピーする」のが確実のようです。 本当にお世話をかけました。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.4

あと「thisworkbook複数」で検索して見つかったのは こちらでは、前回の「(*.xlsb)]で保存してxlsb形式で保存したファイルを開く」の後の操作ですが 「新しいファイルにコピーしたけれど、*.xlsb ファイルを閉じて元の *.xlsm を再度開くと、すべてのオブジェクトが消えており」でなおったぽい感じです。 https://stackoverflow.com/questions/18273071/excel-vba-project-has-generated-multiple-workbook-objects こちらは同じ現象で、新規ブックにすべて移し替えたみたいです。 ThisWorkbookが2つできた時の対処法 https://bybloswebsite.com/post-8665.html

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.3

アイコンがthisworkbookと同じみたいですので、以下の症状と似ているのかもしれません。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13170310708 存在しないシートを削除することができた例です https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12195608482

ken-nosuke
質問者

お礼

助言ありがとうございます。 症状は似ているようなのですが、記載の方法では解決しませんでした。別の情報をお待ちします。

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

>Sheet配置でVBAを作成していました。 操作をして、マクロの記録を採り、VBAコードを見ておるのですか 大まかな状況の説明が不足していませんか。 ーー 操作をして、マクロの記録を採る以外で、VBAコードを作って実行しているタイプのVBAなら、 Worsheets.Addというコードを書かない限り、シートは増えないはずで、コードを見ればすぐわかる。 ーー シートとを追加した時のイベントを作っておくと、シートを追加したときに表示が出る、ようにできる。 これは操作でやった場合でも、VBAでやった場合でもひっかかると思う。 WorkbookのNewSheetイベントです。 Private Sub Workbook_NewSheet(ByVal Sh As Object) MsgBox "今シートが増えた" End Sub このコメントを出すことが、手掛かりにならないかな。 質問の>Sheet増える理由:どのような操作をしたから発生したのか? の対策の参考のために言っているつもり。 >Sheet1,11はシートが存在しないので、PEから削除したい そのシートをシートタブ上などで操作で削除すれば、PE(プロジェクトエクスプローラー)での表示は消えるのでは >Sheet111(クイズ)をSheet1(クイズ)に戻す方法は? 戻すといってもなんのこと。名前の変更ではだめなのか?内容のことは判らない。 ーー 普通VBAを利用していて起こることではないように思うが、 読者への説明が不足しているように思う。 ーー ・macro-の記録の場合、どういう操作をしたのか ・VBAを作ったのなら、そのコードのコピーを挙げて 質問すべきではないか。

ken-nosuke
質問者

お礼

回答ありがとうございます VBAコードを作って実行しているタイプのVBAなら、 Worsheets.Addというコードを書かない限り、シートは増えないはずで、 ⇒シートの追加はしていません。だから、謎なのです。 >Sheet1,11はシートが存在しないので、PEから削除したい そのシートをシートタブ上などで操作で削除すれば、PE(プロジェクトエクスプローラー)での表示は消えるのでは ⇒オブジェクトにシートがないので、削除しようがありません。 >Sheet111(クイズ)をSheet1(クイズ)に戻す方法は? 戻すといってもなんのこと。名前の変更ではだめなのか? ⇒Sheet111 は、excelのシステムがつけた番号、(クイズ)はユーザーがつけた名前。 もし今後も同じ現象が生じた場合Sheet111111とどんどん長くなる恐れがあるので可能であればSheet1に戻しておきたいということです。 >普通VBAを利用していて起こることではないように思うが、 読者への説明が不足しているように思う。 ⇒申し訳ありません。自分でも何が起きているのかわからないため、どこまで説明すればよいのか不明です。ファイルごとアップできれば良いのですが。 No.1の方の方法で半分解決しましたが、希望通りの解決には至っていません。 新しい情報があればご教示お願いします。

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

関連するQ&A