先日、下記のコードを教えて頂きました。
Private Sub Workbook_Open()
Dim tmp, dNow
tmp = Split(ThisWorkbook.Name, ".")
If Split(ThisWorkbook.Name, ".")(UBound(tmp)) <> "xlsm" Then
dNow = Format(Now, "yyyy/mm/dd")
With Worksheets("指定シート")
If dNow >= Format(.Range("D39"), "yyyy/mm/dd") _
And dNow <= Format(.Range("E39"), "yyyy/mm/dd") Then
MsgBox ("「締め切りが完了しました」"), 16
Exit Sub
End If
End With
End If
End Sub
D39~E39の期間中にブックを開くと警告文が表示されます。
警告文が表示され、「OK」を押すと次からは期間中でも警告文を非表示に出来る方法を教えてください。
このブックはテンプレート(ひな形)として使用しており、一度警告文が表示されれば役割は完了です。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
多分こんな感じです。
検証していません。
If dNow >= Format(.Range("D39"), "yyyy/mm/dd") _
And dNow <= Format(.Range("E39"), "yyyy/mm/dd") _
And .Range("Z39").Value = "警告文表示済み"
Then
MsgBox ("「締め切りが完了しました」"), 16
.Range("Z39").Value = "警告文表示済み"
Exit Sub
End If
No.4
- 回答日時:
こんにちは
実現するためには、「一度実行した」ことをどこかに記録しておく必要があります。
例えば、非表示シートを用意しておいて、実行したらその指定セルに「済」などと記入しておく。
(非表示シートではなくて、どこかの空きセルを利用しても良いです)
マクロの最初でこのセルをチェックして、記載があれば中断するような仕組みです。
(記入時に、マクロでブックを保存しておく必要があります)
他の方法としては、「当該マクロそのものをマクロから書き換える」という方法も考えられます。
こちらであれば、記録場所も不要になるので、非表示シートのようなものも不要です。
例えば、以下のような感じ。
Sub Delete_Open_Proc()
Const tgt = "Workbook_Open"
With ThisWorkbook.VBProject.VBcomponents("ThisWorkbook").CodeModule
.DeleteLines .ProcStartLine(tgt, 0), .ProcCountLines(tgt, 0)
End With
ThisWorkbook.Save
End Sub
※ コードの内容を理解できない場合は使用しないでください。
※ マクロからの変更を許可しておく必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2023/01/13 10:42
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数で「6ヶ月より...
-
Facebookを見ていたらいかがわ...
-
エクセルのVBAについて教えてく...
-
OnTime の中断方法について
-
Access 「これ以上テーブルを...
-
変数名の自動変更支援機能について
-
エクセル形式 97-2003は将来使...
-
シートを削除する際
-
Symantecで以下のような警告文...
-
Access2003 Runtime セキュリテ...
-
Excelで一定時間が経ったらメッ...
-
PCのセキュリティソフトはどこ...
-
LINEでごめんねって謝ったらこ...
-
SoftBankのセキュリティONEにつ...
-
PSPをスマホのWi-Fiテザリング...
-
windowsセキュリティ処置をおす...
-
ノートンのモバイル版をiPhone...
-
こんな警告が出ます ウイルス感...
-
メールの件名に、「MEIWAKU」の...
-
ウイルスソフト導入後、添付フ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの関数で「6ヶ月より...
-
Windows Defenderセキュリティ...
-
Excelで一定時間が経ったらメッ...
-
ETCマイレージサービスのサイト...
-
Facebookを見ていたらいかがわ...
-
OnTime の中断方法について
-
ノートンのセキュリティ警告が...
-
携帯でインターネットしようと...
-
ノートンの警告が消えない。
-
audacityのダウンロード
-
セキュリティ警告の消し方について
-
黄色い三角しるしの中に白いビ...
-
「このサイトのセキュリティ証...
-
Googleからジャンクアプリの削...
-
エクセルのVBAについて教えてく...
-
パソコンが、こんな事、言うて...
-
ACCESSを開くたびにセキュリテ...
-
エクセル形式 97-2003は将来使...
-
Access 「これ以上テーブルを...
-
セキュリティの警告
おすすめ情報
回答ありがとう御座います。
貴者のそのブックのセルに「警告文表示済み」を書き込んでおいて、
VBAで判定する
を利用したいのですが、
詳しいコードを教えて頂けますか。
よろしくお願いします。