2016-04-06 8 views
0

私は、保存する前にExcelで作成した請求書のスペルチェックにマクロを使用しています。現在、ブック全体をチェックしています。私は特定のシートの証明書セルのみをチェックしたいのですが(なぜなら、私は人名と住所を請求書に記入して欲しいと思っていないからです)。シート上Excelで特定のVBAスペルを確認する

具体的には、私はシートの上にのみ細胞D15-D19のスペルチェックしたいのですが、「請求書」とセルD38の「安全点検」

誰かが正しい方向に私を指すことができますか?

これは私が現在私がリファインしたいことを使用しているVBAコードです:

Option Explicit 
Sub SaveAsSafety() 
'Saves filename as value of A1 plus the current date 


Application.CommandBars("Tools").Controls("Spelling...").Execute 
'Invokes spell check 

Dim newFile As String, fName As String 
' Don't use "/" in date, invalid syntax 
fName = Range("M9").Value 
'Change the date format to whatever you'd like, but make sure it's in quotes 
newFile = fName & " - " & Range("D10").Value & " - " & Range("D9") 
' Change directory to suit your PC, including USER NAME 

Sheets(Array("Safety Inspection", "Invoice")).Select 
Sheets("Safety Inspection").Activate 

ChDir _ 
"C:\Users\Brian\Google Drive\Buller Heating and Air\Invoices" 
ActiveWorkbook.SaveAs Filename:=newFile 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Range("A1").Value _ 
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
:=False, OpenAfterPublish:=False 

End Sub 
+0

あなたはほとんどそこにいます。あなたはすでに適切なシート配列を持っているので、範囲アドレス配列を追加して、それらの2つを同時に反復して、シートとそれに対応する範囲を収集することができます。コード) – user3598756

答えて

1

特定の細胞内のスペルをチェックするには、試してみてください。

Sub bbuller() 
    Dim boo As Boolean 

    s = Array("Invoice!D15", "Invoice!D16", "Invoice!D17", "Invoice!D18", "Invoice!D19", "'Safety Inspection'!D38") 
    For Each ss In s 
     boo = CheckItNew(Range(ss)) 
     If boo Then 
      MsgBox ss & " has no errors" 
     Else 
      MsgBox ss & " has errors" 
     End If 
    Next ss 
End Sub 

Public Function CheckItNew(r As Range) As Boolean 
    Dim MyText As String 
    MyText = r(1).Text 
    Dim oxlAp As Object 
    Set oxlAp = CreateObject("Excel.Application") 
    CheckItNew = oxlAp.CheckSpelling(MyText) 
    oxlAp.Quit 
    Set oxlAp = Nothing 
End Function 
+0

私は何か新しいことを学んだ(もう一度!)。 Excelの環境がExcelであるため、 'CheckItNew'関数を避けて' If Application.CheckSpelling(Range(s)(1).Text)Then ' – user3598756