Quantcast
Channel: OKWAVE 最新質問([技術者向] コンピューター/205)【本日】
Viewing all articles
Browse latest Browse all 38062

VBAについて質問です

$
0
0
下記の場合、どのようなコードを組めばよろしいでしょうか。 (※表示シート、記入シート1、記入シート2の枚のシートがあります) (1)マクロを必ず有効にさせる。(→記入シート非表示であり、マクロが有効になると表示される) (2)記入シート1、2は「要入力」セルに未入力があるとエラーメッセージが表示される。  (上書き保存、名前を付けて保存、×で閉じようとすると表示されて保存ができないようにする) (3)記入シート1、2ともに「要入力」セルに未入力がない場合のみ、ファイルを保存(閉じる)ことが可能で記入シート1、2は非表示となる。  (※記入シート1か2のどちらかに未入力がある場合は、未入力がないシートも非表示とならない。)  (※×を押して閉じようとした際に、未入力がある場合でも、保存しますか→いいえを選択するとファイルは閉じれる) Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) flag = 0 For Each seru In Sheets("記入シート1").Range("要入力_1") If seru.Value = "" Then MsgBox seru.Address & " が未入力です。(記入シート1)" flag = 1 End If Next If flag = 1 Then Cancel = True End If If Sheets("記入シート1").Range("A1").Value > 0 Then flag = 0 For Each seru In Sheets("記入シート2").Range("要入力_2") If seru.Value = "" Then MsgBox seru.Address & " が未入力です。(記入シート2)" flag = 1 End If Next If flag = 1 Then Cancel = True End If End If End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) If Not Sheets("記入シート1").Range("要入力_1").Value = "" Then If Sheets("表示シート").Visible Then Sheets("記入シート1").Visible = xlVeryHidden If Not Sheets("記入シート2").Range("要入力_2").Value = "" Then If Sheets("表示シート").Visible Then Sheets("記入シート2").Visible = xlVeryHidden ActiveWorkbook.Save End If End Sub Private Sub Workbook_Open() If Not Sheets("記入シート1").Visible Then Sheets("記入シート1").Visible = True If Not Sheets("記入シート2").Visible Then Sheets("記入シート2").Visible = True End Sub 上記をどう直せばいいか教えてください。

Viewing all articles
Browse latest Browse all 38062

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>