2016-07-08 4 views
2

Excel Addinを有効にするとカスタムボタンをリボンに追加しようとしています。ボタンは、アドイン内に保存されたサブを呼び出す必要があります。私はカスタムUIエディタを使用しており、ここで説明した方法に従っていますhttp://www.rondebruin.nl/win/s2/win001.htm。それはボタンを作成するために働いていますが、ボタンをクリックしてもマクロは呼び出されません。 "引数の数が正しくないか、プロパティが無効です"というエラーが表示されます。マクロ自体が正しく動作するので、ボタンの記述方法に問題があると想定しています。私が間違ってやっていることに関する考えは?以下のコードは、UIエディタ内のコードです。Addin内からマクロを呼び出すボタンを作成するカスタムUIエディタ

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
<ribbon> 
<tabs> 

    <tab idMso="TabHome" > 
    <group id="customGroup1" label="My Group" insertAfterMso="GroupEditingExcel"> 

     <button id="customButton1" label="Delete Totals" size="large" 
    onAction="DeleteBoldTotals" imageMso="HappyFace" /> 
    </group> 
    </tab> 

    </tabs> 
    </ribbon> 
</customUI> 

私が試した他の変形は、ボタンが何らかの理由で表示されないようにすることです。

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
<ribbon> 
    <tabs> 

    <tab idMso="TabHome" > 
    <group id="customGroup1" label="My Group" insertAfterMso="GroupEditingExcel"> 

     <button id="customButton1" label="Delete Totals" size="large" 
    onAction=Application.Run "DeleteBoldTotals" imageMso="InkEraseMode" /> 
    </group> 
    </tab> 

    </tabs> 
</ribbon> 
</customUI> 

私はそれを呼び出す必要があるマクロは次のとおりです。

Option Explicit 

Sub DeleteBoldTotals() 
Dim vFIND As Range, vFIRST As Range, delRNG As Range 
Dim ws As Worksheet 

On Error Resume Next 
For Each ws In ActiveWorkbook.Worksheets 
    Set vFIND = ws.Cells.Find("Total", LookIn:=xlValues, LookAt:=xlPart) 
    If Not vFIND Is Nothing Then 
     Set vFIRST = vFIND 
     Do 
     If vFIND.Font.Bold = True Then 
      If delRNG Is Nothing Then Set delRNG = vFIND Else Set delRNG = Union(delRNG, vFIND) 
     End If 
     Set vFIND = ws.Cells.FindNext(vFIND) 
    Loop Until vFIND.Address = vFIRST.Address 
    If Not delRNG Is Nothing Then 
     delRNG.EntireRow.Delete xlShiftUp 
    End If 
    Set vFIND = Nothing 
    Set vFIRST = Nothing 
    Set delRNG = Nothing 
    End If 
Next ws 

End Sub 
+0

マクロは、その署名が重要であるため、共有してください... – DAXaholic

答えて

3

最初のものが正しいです。サブ名では、次のように入力する必要があります。

Sub name(rib as iRibbonControl) 
+0

これは完全に機能しました。どうもありがとうございました! – TonyP

関連する問題