Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3367 / 13644 ツリー ←次へ | 前へ→

【62681】上書き保存について 今夜が山田 09/8/23(日) 12:38 質問[未読]
【62684】Re:上書き保存について りん 09/8/23(日) 19:05 発言[未読]
【62685】おまけ Jaka 09/8/24(月) 9:57 発言[未読]
【62688】おまけ追加 Jaka 09/8/24(月) 12:36 発言[未読]

【62681】上書き保存について
質問  今夜が山田  - 09/8/23(日) 12:38 -

引用なし
パスワード
   ブックの値に変更箇所がある場合だけ、上書き保存をしたいのですが
下記コードだと、ブックに値を入れてから
その値を削除して、見た目上変更がなくても
変更ありと判断されてしまいます
値を削除して、見た目上変更がない場合は上書き保存しないように
したいのですが、どのようにすればいいのでしょうか??

実際には、AブックでないBブックの値を参照して
Bブックの値が1のときは、変更があっても上書き保存不許可
Bブックの値が0の時は、変更がある場合上書き保存許可というような事をしたいのですが…


--Bブックの値が1の時にAブックに変更があるが上書き保存不許可--

Workbooks("A.xls").Activate
  
If ActiveWorkbook.Saved = False Then

MsgBox ("変更箇所がありますが、上書き保存できません")
  
Else
  
End If

--Bブックの値が0の時は上書き保存--

Workbooks("A.xls").Activate

If ActiveWorkbook.Saved = False Then

MsgBox ("変更箇所があるので、上書き保存します")

ThisWorkbook.Save

Else
  
End If

【62684】Re:上書き保存について
発言  りん E-MAIL  - 09/8/23(日) 19:05 -

引用なし
パスワード
   今夜が山田 さん、こんばんわ。

>ブックの値に変更箇所がある場合だけ、上書き保存をしたいのですが
>下記コードだと、ブックに値を入れてから
>その値を削除して、見た目上変更がなくても
>変更ありと判断されてしまいます
>値を削除して、見た目上変更がない場合は上書き保存しないように
>したいのですが、どのようにすればいいのでしょうか??

>実際には、AブックでないBブックの値を参照して
>Bブックの値が1のときは、変更があっても上書き保存不許可
>Bブックの値が0の時は、変更がある場合上書き保存許可というような事をしたいのですが…

条件がよくわからないので分岐方法だけ。

If (変更があっても上書き保存不許可の条件) Then
  MsgBox "変更箇所がありますが、上書き保存できません", vbExclamation
  ThisWorkbook.Saved = True '保存したフリ
ElseIf (変化ないので保存しませんの条件) Then 
  ThisWorkbook.Saved = True '保存したフリ
Else
  MsgBox "変更箇所があるので、上書き保存します", vbInformation
  ThisWorkbook.Save '保存
End If

こんな感じです。

【62685】おまけ
発言  Jaka  - 09/8/24(月) 9:57 -

引用なし
パスワード
   Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If SaveAsUI = True Then
  MsgBox "名前を付けて保存"
Else
  MsgBox "上書き保存"
End If

'因みに↓こうすると保存できなくなります。(共通)
'Cancel = True

End Sub

【62688】おまけ追加
発言  Jaka  - 09/8/24(月) 12:36 -

引用なし
パスワード
   因みに
名前を付けて保存時に、同名で保存されたら
どうしようも無いと思う。

3367 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free