先日、下記のコードを教えて頂きました。
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ランキング
-
Facebookを見ていたらいかがわ...
-
エクセルの関数で「6ヶ月より...
-
Excelで一定時間が経ったらメッ...
-
audacityのダウンロード
-
OnTime の中断方法について
-
SoftBankのセキュリティONEにつ...
-
Windows11 用の強力なセキュリ...
-
windowsセキュリティ処置をおす...
-
トロイの木馬型スパイウェアに...
-
Form1 Hotkey Closing
-
ノートンのモバイル版をiPhone...
-
LINEでごめんねって謝ったらこ...
-
PSPをスマホのWi-Fiテザリング...
-
finest で中古PCを購入 独自の...
-
お助け下さい。Win10 更新する...
-
またきたフィッシング詐欺
-
マカフィー メルアド変更手続き
-
メールの件名に、「MEIWAKU」の...
-
Windows7のセキュリティとかの...
-
Firefoxの拡張(テーマやアドオ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの関数で「6ヶ月より...
-
Excelで一定時間が経ったらメッ...
-
OnTime の中断方法について
-
携帯でインターネットしようと...
-
エクセルのVBAについて教えてく...
-
Facebookを見ていたらいかがわ...
-
Windows Defenderセキュリティ...
-
ノートンのセキュリティ警告が...
-
audacityのダウンロード
-
変数名の自動変更支援機能について
-
ETCマイレージサービスのサイト...
-
svchost.exeに対して警告が出る
-
Access 「これ以上テーブルを...
-
セキュリティの警告
-
検索しようとすると、「情報を...
-
黄色い三角しるしの中に白いビ...
-
「このサイトのセキュリティ証...
-
エクセル形式 97-2003は将来使...
-
シートを削除する際
-
セキュリティ警告の消し方について
おすすめ情報
回答ありがとう御座います。
貴者のそのブックのセルに「警告文表示済み」を書き込んでおいて、
VBAで判定する
を利用したいのですが、
詳しいコードを教えて頂けますか。
よろしくお願いします。