電子書籍の厳選無料作品が豊富!

罫線を引いたセルが範囲の中にいくつあるかを求めたい
罫線の色別に求めたい(赤い罫線のあるセル、青い罫線のあるセル)
結果をシート上に表記したい

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (4件)

VBAのコードを作成してくれるよう、ChatGPTに依頼してみました。



以下、ChatGPTの回答からの引用です。
私は検証はしていないので、ご自身で検証並びに必要なモディファイを行って下さい。

---------------------------------------------------------------------

Excelで特定の罫線の色に基づいてセルの数をカウントするVBAコードを紹介します。このコードは、赤と青の罫線を持つセルの数をカウントし、その結果を新しいシートに出力します。


以下の手順に従ってください:


1. **Excelを開く**

2. **Alt + F11**を押してVBAエディタを開く

3. **挿入** → **モジュール**を選択し、新しいモジュールを作成

4. 次のコードをそのモジュールに貼り付ける


```vba

Sub CountCellsByBorderColor()

    Dim ws As Worksheet

    Dim cell As Range

    Dim redBorderCount As Long

    Dim blueBorderCount As Long

    Dim borderColor As Long

    Dim newSheet As Worksheet

    

    ' 調べるシートを設定

    Set ws = ThisWorkbook.Sheets("Sheet1") ' 調べるシート名に変更してください

    

    ' 赤と青の罫線をカウント

    redBorderCount = 0

    blueBorderCount = 0

    

    For Each cell In ws.UsedRange

        With cell.Borders(xlEdgeLeft)

            borderColor = .Color

            If borderColor = RGB(255, 0, 0) Then

                redBorderCount = redBorderCount + 1

            ElseIf borderColor = RGB(0, 0, 255) Then

                blueBorderCount = blueBorderCount + 1

            End If

        End With

        With cell.Borders(xlEdgeRight)

            borderColor = .Color

            If borderColor = RGB(255, 0, 0) Then

                redBorderCount = redBorderCount + 1

            ElseIf borderColor = RGB(0, 0, 255) Then

                blueBorderCount = blueBorderCount + 1

            End If

        End With

        With cell.Borders(xlEdgeTop)

            borderColor = .Color

            If borderColor = RGB(255, 0, 0) Then

                redBorderCount = redBorderCount + 1

            ElseIf borderColor = RGB(0, 0, 255) Then

                blueBorderCount = blueBorderCount + 1

            End If

        End With

        With cell.Borders(xlEdgeBottom)

            borderColor = .Color

            If borderColor = RGB(255, 0, 0) Then

                redBorderCount = redBorderCount + 1

            ElseIf borderColor = RGB(0, 0, 255) Then

                blueBorderCount = blueBorderCount + 1

            End If

        End With

    Next cell

    

    ' 結果を新しいシートに表示

    Set newSheet = ThisWorkbook.Sheets.Add

    newSheet.Name = "BorderColorCount"

    newSheet.Cells(1, 1).Value = "赤い罫線のセル数"

    newSheet.Cells(1, 2).Value = redBorderCount

    newSheet.Cells(2, 1).Value = "青い罫線のセル数"

    newSheet.Cells(2, 2).Value = blueBorderCount

End Sub

```


5. コードを保存し、VBAエディタを閉じる

6. Excelに戻り、**Alt + F8**を押して「CountCellsByBorderColor」を実行


これにより、特定のシート上の赤と青の罫線を持つセルの数をカウントし、新しいシートに結果を出力します。シート名や色のRGB値は必要に応じて調整してください。
    • good
    • 0

ユーザー定義関数でなくても良いのですが、


VBAでのプログラミングが必要になります。
    • good
    • 0

No1です。



>「ユーザー定義関数」が理解できません。
理解できないものを説明したところで無駄だとは思いますけれど・・
https://oshiete.goo.ne.jp/qa/2550692.html
    • good
    • 0

こんばんは



通常の関数等では罫線の有無や色を求めることはできません。

一方で、上記の内容はユーザ定義関数を利用することで可能だと思います。
ご質問内容に当たるユーザ定義関数を作成し、それをシート上のセルで使用することで、シート上にセル数を表示することが可能になると思います。
    • good
    • 0
この回答へのお礼

早速のご回答、ありがとうございます。素人の私には「ユーザー定義関数」が理解できません。

お礼日時:2024/07/21 22:51

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