[[20120620115822]] 『終了時、指定したシートのみ上書き保存 』(miyama) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『終了時、指定したシートのみ上書き保存 』(miyama)
 シートが20以上あります。
 その内、上書き保存すべきシートは3つです
 それ以外は上記シートを元に計算して表示するシートです。
 上書き保存して終了する場合、3つのシートのみ保存すれば足ります。
 マクロを使って保存するコードです。
 Sub sheet5_ボタン22_Click()
 ThisWorkbook.Save
 endSub

 ThisWorkbook.Saveこの部分に
 シート1、2、3のみ上書き保存するコードを記述したいのですが
 どうかお願いします。
 Excel2007, Windows 7

 


特定のシートだけ保存する方法はないと
思います。
(みやほりん)

 みやほりん様
 感謝です

 miyama

発想を変えれば良い
1シート〜3シート を保存するとして

@シート4〜最大シートまでを削除
A保存
最大シート:MaxShet = Sheets.count

次回起動時
@シートを3シート以降に必要数シートを追加

マクロの詳細は「マクロの記録」し、その内容を手直しする

シート削除の場合

for i = MaxShet to 4 Step -1

       :        ' シート削除

next

これを標準モジュールに記述し、実行
マクロでは、最右翼のシート(MaxShet)から第4シートへ向かって削除するのが
ポイントです

又は、新規XLSを起動し、保存したいシートをシート丸ごとコピーし、名前をつけて保存

でいかがですか

(asami)


 1から3 以外 削除出来ないんじゃないのかな??

 例えば 参照してるとか?

 (通り道)

 >その内、上書き保存すべきシートは3つです
 >それ以外は上記シートを元に計算して表示するシートです。
 >上書き保存して終了する場合、3つのシートのみ保存すれば足ります。

 この記述で私が想像して見ると・・・、

 マクロコードを含んだブックとデータブックを分ける

 という事です。

 上げられた三つのシートがデータで他のシートは、データの更新に携わるインターフェース、
 つまり、ユーザーフォーム等と同じ役割を果たしているプログラムで使っているオブジェクト
 ということになります。

 こういうことであれば、プログラムブックとデータとしてのブックを分けて、運用する
 方法を模索してみてはいかがですか?

 ichinose


 >その内、上書き保存すべきシートは3つです
 >それ以外は上記シートを元に計算して表示するシートです。
 >上書き保存して終了する場合、3つのシートのみ保存すれば足ります。

 これから想像できる可能性として

 他のシートは関数やマクロで作成される印刷用等の定型書式シート

 という場合も。
 もしそうなら

 定型書式シートは触って欲しくないけど、そこに参照させているデータシートは不特定多数が入力する。
 ↓
 禁止してるけど絶対変更して壊すやついる
 ↓
 壊されてもデータシートだけ保存すれば、次ぎ開いたとき直ってる!

 と考えたのかなーと。
 というわけで、推測というか妄想というかの結果。
 シート保護おすすめ。
 (MEC)

 質問とは関係ないとこなんですけど、
 代替案が出るのがこの学校のいいとこだと思うので
 確かに希望する事が出来ないとしても
 一言「代替案が出るかもしれない」くらい書き込んでいただけると
 質問者さんも、その後ものぞきに来るかな〜と思います。

 他のサイトだと諦めて終わりの案件でも
 ここだと別法で解決される事が多く勉強になります。
 一利用者よりお願いです〜(ぞう)

 asami様ありがとうございます
 シート4以降を削除することですが、ボタンとかを表示しているため、削除することは
 難しいように思います

 通り道様ありがとうございます
 おっしゃるように参照があります

 ichinose様ありがとうございます
 >プログラムブックとデータとしてのブックを分けて、運用する 
 >方法を模索してみてはいかがですか?
 おっしゃる方法を検討します

 MEC様ありがとうございます
 >他のシートは関数やマクロで作成される印刷用等の定型書式シート
 そうです

 ぞう様ありがとうございます

 miyama

コメント返信:

[ 一覧(最新更新順) ]


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