アプリ版:「スタンプのみでお礼する」機能のリリースについて

OFFICE2003エクセルで指定した範囲内に特定の罫線(斜線)が引かれているセルの個数を調べる方法は無いでしょうか?宜しくお願い致します。

A 回答 (4件)

マウスで範囲を指定して以下のマクロを実行してみてください。



Sub a()
Dim range As Excel.range
Dim item As Excel.range
Dim cntD As Integer
Dim cntU As Integer

Set range = Selection

For Each item In range
If item.Borders(xlDiagonalDown).LineStyle <> xlNone Then
cntD = cntD + 1
End If
If item.Borders(xlDiagonalUp).LineStyle <> xlNone Then
cntU = cntU + 1
End If
Next
MsgBox ("右肩下がりの斜線=" & cntD)
MsgBox ("右肩上がりの斜線=" & cntU)
End Sub
    • good
    • 4
この回答へのお礼

早速の返答ありがとうございます。しかしまぁ~皆さん凄いですね~!イメージ通りに出来ました。助かりました。ありがとうございました。

お礼日時:2008/12/05 15:56

解決したみたいですが、一応、一般機能案です。


必要なデータを空いている列にコピィします。
コピィした列選択して、置き換え を実行
ウィザードの中のオプションクリック
検索する文字列の書式をクリック 希望の罫線を選択
置き換える文字に ? など使用していない文字いれて 全て置き換えを実行
あとでCOUNTIF関数で ? の和を数えます。
    • good
    • 4

(1)エクセル関数で出来ると思って質問しているなら、エクセルのキホンの不知。

関数では罫線の有無は余ら得られません。
(2)罫線にも、セルの上下左右の罫線、斜線、外枠線などがありそれを区別して質問してないのは、問題が十分見えてない証拠。
一般にはVBAでやることになる。
VBAで説明を受けるよりも、罫線が引いてあるのは、どういうセルなのか、その特徴について、元のセルの値の関係などで説明や考え直せないのか、考えるべき。
質問に状況を補足を。
    • good
    • 2

マクロでやるしかないんじゃないですかねぇ。



調べたい範囲を選択した状態で、

Sub test()

Dim r, x

For Each r In Selection
If r.Borders(xlDiagonalDown).LineStyle <> xlNone Or r.Borders(xlDiagonalUp).LineStyle < xlNone Then
x = x + 1
End If
Next r
MsgBox x

End Sub

を実行。
    • good
    • 1
この回答へのお礼

早速の返答ありがとうございます。イメージ通りに出来ました。助かりました。ありがとうございます。

お礼日時:2008/12/05 15:55

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

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


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