AIツールの活用方法を教えて

下記のマクロを実行するとセル値の番号の該当フォルダが指定フォルダから指定フォルダ内に移動出来るマクロになっております。
このマクロの実行は、シート名「物件管理」にVBA
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Range("AE79").Value = "該当" Then
Call フォルダ移動
End If
End Sub
を設定して実行しております。
しかし、マクロを実行後に、対象フォルダを移動済みの場合でも、シート「物件管理」上で作業をする度に、メッセージ「フォルダを移動しますか?」が表示されてしまいます。
対象フォルダが移動済み又は、メッセージが表示されて「はい(Y)を1回クリックすることで
シート「物件管理」上で作業をする度に、メッセージ「フォルダを移動しますか?」が非表示となる方法を親切にコード元を教えてください。
現状のマクロ
Sub フォルダ移動()
Dim alert As VbMsgBoxResult
alert = MsgBox("フォルダを移動しますか?", vbYesNo + vbQuestion, "移動確認")
If alert <> vbYes Then
Exit Sub
End If

On Error Resume Next
Dim fso As Object
Dim MSfo As String
Dim RSfo As String
Dim sh As Worksheet
Set sh = Workbooks("作業管理(最新).xlsm").Sheets("物件管理")
Set fso = CreateObject("Scripting.FileSystemObject")
RSfo = "\\nas-sp01\share\確認部\電子申請 関連\2.審査中\北海\"
Dim i As Long
For i = 1 To 20
If sh.Cells(i, "AG").Value <> "" Then
MSfo = "\\nas-sp01\share\確認部\電子申請 関連\2.審査中\◆未審査物件◆\" & sh.Cells(i, "AG").Value & "_*"
End If
fso.MoveFolder MSfo, RSfo
Next
Set fso = Nothing
End Sub

A 回答 (1件)

方法はいくつか考えられますが


実行条件が不足している為、良い提案が出来ませんね
難しいです・・・
よく実行トリガーを考えましょう(実行したい時としたくない時の条件)

① AE79セルに "該当" を入力した時に実行するのなら
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("AE79")) Is Nothing Then
If Range("AE79").Value = "該当" Then
Call フォルダ移動
End If
End If
End Sub

例 AE79セルの値が"該当"で AA1セルの値を変えた場合なら
If Not Intersect(Target, Range("AA1")) Is Nothing Then

②任意実行にするなら ボタン実行にする
例 Worksheet_Changeイベントをやめて
ActiveXコントロール CommandButton1を該当シートに設置

Private Sub CommandButton1_Click()
If Range("AE79").Value = "該当" Then
Call フォルダ移動
End If
End Sub

③ 変数を使って実行を分岐する
例 一度実行するとブックを再度開かないと実行しない
Changeイベントはそのまま・・・あまりよくないかも

標準モジュール

Dim myTrigger As Boolean
Sub フォルダ移動()
If myTrigger Then Exit Sub 

Dim alert As VbMsgBoxResult

alert = MsgBox("フォルダを移動しますか?", vbYesNo + vbQuestion, "移動確認")
If alert <> vbYes Then
Exit Sub
End If
myTrigger = True
On Error Resume Next

とか・・・閉じるときに実行とか・・・タイミングで色々ですかね
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
少ない情報で色々と考えて頂きまして、感謝いたします。
教えて頂いたコードを元に設定させていただきます。

お礼日時:2024/11/27 16:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A