VBA OR条件での検索について教えてください。
VBA初心者です。また質問させてください。
以前、下記のような表で、『小計』の文字を検索して行を挿入したり、斜め線を引くという内容をVBAでやる方法を教えていただきました。
その節はありがとうございました。
************************************************************* A B C D
1
2 項目 品名 数量 単位
3 内訳(別紙明細) 1 式
4 ブレーカ 1 ヶ
5 消耗品 1 式
6
7
8 小計
*************************************************************
今度は『小計』だけでなく『合計』があった場合も、同じ処理をするVBAを作成したいのですがうまくいきません。
以下が記述です。
*************************************************************
Private Sub 斜め線描画_Click()
Dim myLine As Shape
Dim c As Range
Dim cnt As Integer
Dim i As Integer
cnt = WorksheetFunction.CountIf(Cells, "*小 計*")
Set c = Cells.Find(What:="小 計", LookIn:=xlFormulas, LookAt:=xlPart)
If Not c Is Nothing Then
i = 1
Call LineArranging(c)
Do
If i >= cnt Then Exit Sub 'カウントでチェック
Set c = Cells.FindNext(c)
If c Is Nothing Then Exit Sub
Call LineArranging(c)
i = i + 1
Loop
End If
Set c = Nothing
End Sub
Sub LineArranging(rng As Range)
Dim BX As Double, BY As Double, EX As Double, EY As Double
Dim rngStart As Range, rngEnd As Range
Dim myLine As Shape
rng.Select
ActiveCell.Rows("1:2").EntireRow.Select
Selection.Insert Shift:=xlDown
rng.Offset(1, 0).Select
ActiveCell.Rows("1:2").EntireRow.Select
Selection.Insert Shift:=xlDown
rng.Offset(-2, 0).Select
Selection.EntireRow.Insert
ActiveCell.EntireRow.Select
Selection.RowHeight = 2
rng.Offset(1, 0).Select
Selection.EntireRow.Insert
ActiveCell.EntireRow.Select
Selection.RowHeight = 2
Set rngStart = rng.Offset(1, -1)
Set rngEnd = rng.Offset(-2, 0)
BX = rngStart.Left
BY = rngStart.Top
EX = rngEnd.Left + rngEnd.Width
EY = rngEnd.Top
Set myLine = Sheet4.Shapes.AddLine(BX, BY, EX, EY)
BX = BX + 151.5
BY = BY - 27
EX = EX - 152.25
EY = EY + 26.25
Set myLine = Sheet4.Shapes.AddLine(BX, BY, EX, EY)
Set rngStart = Nothing
Set rngEnd = Nothing
Set myLine = Nothing
End Sub
*************************************************************
『または』なのでorを使うのかと思ったのですが、エラーになりうまくいきません。どうしたらいいのか教えてください。
よろしくお願いします。
お礼
うわあああ!できました!! なんかいろいろ間違ってますね私(^^;)勉強になりました。 ありがとうございました!