0

私はマクロの作成とプログラミング全般に非常に慣れていません。38 個のタブのワークシートがあります。31 個のタブは、その月の日用です。これらの 31 個のタブのそれぞれの列 N で "MCO" が選択されるたびに、ユーザーに警告メッセージを表示するマクロを作成したいと考えています。それは可能ですか?

ありがとう

4

2 に答える 2

2

ワークブック レベルの SheetSelectionChange イベントを使用して可能です。VBA プロジェクトの ThisWorkbook モジュールに、次のコードを貼り付けます。

Option Compare Text
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim SelectedCellsInColN As Range
    ' Make a range of the cells in Target range that intersect with the cells in the N   column
    Set SelectedCellsInColN = Intersect(Target, Target.Parent.Range("N1:N" & CStr(Target.Parent.Rows.Count)))

    If Not SelectedCellsInColN Is Nothing Then
        ' The user has selected a cell in column N
        Dim CurrCell As Range
        For Each CurrCell In SelectedCellsInColN
            ' If the cell's value contains mco (in any case) then prompt the user with a messagebox
            If CurrCell.Value Like "*MCO*" Then
                MsgBox "You've selected MCO"
                ' Exit the sub so we don't keep bugging the user about it...
                Exit Sub
            End If
        Next CurrCell
    End If
End Sub

基本的に、コードが行うことは、ターゲット範囲を調べて、N 列のセルが選択されているかどうかを確認し、選択されている列 N のセルをループして、値に MCO が含まれているかどうかを確認することです (削除できますセルに「MCO」のみが含まれている場合にのみプロンプトが必要な場合は星印)、その場合はユーザーにプロンプ​​トを表示して終了します。

それが役立つことを願っています。

-ジョン

于 2009-01-06T20:42:35.940 に答える
0

マクロ ソリューションまたは vba ソリューションをお探しですか。2つは異なります。マクロ レコーダーを使用して手順を実行するマクロについては、VBA ソリューションについては、Jon の回答から始めます。

于 2009-01-13T16:58:01.670 に答える