[[20250404091617]] 『VBAでシートを分割する』(00) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『VBAでシートを分割する』(00)

煮詰まってしまい、教えてください。

申請書.xlsmファイルがあり、100近くのシートが保存されています。
標準モジュールに、チェックボックスのコード(クリックした図形の色を白から黒に変える)が記述されています。
各シートの各図形10〜20個に上記のマクロが登録されています。

1つのファイルに大量のシートが保存されており使いづらいのでシートを分割する作業を行うのですが、
?@シートを複数選択
?A移動またはコピーで新規ブックに移動(コピーはしない)
?B別名保存
以上の手順でシートを分けると、コードがコピーされない&図形に登録されているマクロは元の「申請書.xlsm」を参照するのでエラーになる

チャットGPTに聞くと、モジュールをエキスポート→インポートしたうえで、図形にマクロを登録し直す、と回答されるのですが、もっと簡単な方法ないでしょうか…?

長々と申し訳ありませんが、知恵をお貸しいただけますと幸いです。

考えた方法
・別名保存したブックにモジュールをインポート
 for each shp で各図形にマクロを登録する
・シートをコピーするのではなく、必要なシート以外を削除して別名保存

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 > 標準モジュールに、チェックボックスのコード(クリックした図形の色を白から黒に変える)が
 > 記述されています。
 そのコードを示されると、皆さんから色々コメントをもらえる気がします。
(xyz) 2025/04/04(金) 09:39:22

ありがとうございます!コードこちらになります。

Sub 四角形1_Click()
With ActiveSheet.Shapes(Application.Caller)

 If .Fill.ForeColor.SchemeColor = 8 Then
 .Fill.ForeColor.SchemeColor = 9
 Else
 .Fill.ForeColor.SchemeColor = 8
 End If
 End With
End Sub

(00) 2025/04/04(金) 09:40:57


どのような時にチェックするのでしょうか。
条件書式でセル塗りつぶしで出来そうな気がしますが。
(?) 2025/04/04(金) 09:55:05

申請書なので、申請内容に応じて申請者が手作業でチェックします
できればチェックボックスのコード体系は変更したくない事情です…><
(00) 2025/04/04(金) 10:00:33

了解です。
マクロに関しては苦手なので他の回答者を待ってください。
(?) 2025/04/04(金) 10:23:19

(?)様、有難うございました!
(00) 2025/04/04(金) 10:48:00

ブックを複製して ←これが抜けてた
必要のないシートを削除
これが簡単では?
注)
適切に各図形にマクロを登録してあることが前提

追加文
マクロ登録する時は、マクロのある場所「作業中のブック」を選択
(まじめな人) 2025/04/04(金) 10:56:55


 別名保存をして、不要なシートを削除するのが手っ取り早いでしょう。
 再登録してももちろんOKですが、上記方法は手作業で簡単にすみます。
(xyz) 2025/04/04(金) 11:02:55

 完全にかぶっていました失礼。

 # "チェックボックス"と"図形"がでてくるので混乱したが、チェックボックスを使うのではなく、
 # 図形の塗りつぶし色を変えることでチェックボックス替わりにするということですね。
 # どちらを選択したかを後続の処理で使うことはないのですね。表示だけということですね?
 # コードを出してもらって明確になりました。

(xyz) 2025/04/04(金) 11:17:17


皆さまありがとうございました!
シンプルなのは、やはり不要なシートを削除することですよね…
上司にはそのように回答しておきます。

個人的には、別名保存したブックにモジュールをインポートを試したところ、各図形のマクロを書きかえることなく問題なく機能いたしました…!
(00) 2025/04/04(金) 13:40:39


インポートも不要でしょう。個人的には、とは?
(xyz) 2025/04/04(金) 13:56:52

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.