[[20071224134809]] 『マクロのエラー』(かず) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロのエラー』(かず)
 会社でマクロをメニューバーに登録していたのですが,
 そのうちの一人が更新しようとしたらエラーになってしまいました。
 (以前はできていたのですが・・・ちなみに その人のファイルを私がやっても
  エラーは発生しません。OSも同じです。(ノートとデスクトップの違いはあります。))
 下記にコードを貼り付けます。どなたかエラーの原因を教えていただけないでしょうか?
 .Controls(contorolsnum).OnAction = actionname の部分でエラーになります。
 実行時エラー-2147467259(80004005) 
 OnAction'メソッドは失敗しました。'CommandBarButton'オブジェクト

 Sub SetMenu() '自作メニューを作ります
    Const Worksheet_Menu_Bar = "Worksheet Menu Bar" '標準ニューバーに作ります
    Const BEGIN_GROUP = "-"
    Const MEMU_NAME_C = 1
    Const MACRO_NAME_C = 2
    Const ICON_ID_C = 3
    Const PM_FILE_PATH_C = 4

    Dim personalmacropath, mymenucaption
    Dim menuitems(50, 2), itemsnum, itemname, contorolsnum
    Dim mymenu, actionname, cntrl
    Dim n&, begingroup_or

    personalmacropath = "'" & Cells(2, PM_FILE_PATH_C).Value & "'!"
    mymenucaption = Cells(6, PM_FILE_PATH_C).Value
    For n = 0 To 50
        itemname = Cells(n + 2, MEMU_NAME_C).Formula
        If itemname = "" Then Exit For
        menuitems(n, 0) = itemname
        menuitems(n, 1) = Cells(n + 2, MACRO_NAME_C).Formula
        menuitems(n, 2) = Cells(n + 2, ICON_ID_C).Value
    Next n

    For Each cntrl In CommandBars(1).Controls
        If cntrl.Parameter = mymenucaption Then
            cntrl.Delete
        End If
    Next cntrl
    itemsnum = n
    contorolsnum = 0
    begingroup_or = 0
    '新しいメニュー
    Set mymenu = CommandBars(Worksheet_Menu_Bar).Controls.Add(Type:=msoControlPopup)
    mymenu.Caption = mymenucaption
    mymenu.Parameter = mymenucaption
    With mymenu 'コマンドマクロの設定
        For n = 0 To itemsnum - 1
            If menuitems(n, 0) = BEGIN_GROUP Then
                begingroup_or = 1
            Else
                contorolsnum = contorolsnum + 1
                .Controls.Add Type:=msoControlButton
                .Controls(contorolsnum).Caption = menuitems(n, 0)
                actionname = personalmacropath & menuitems(n, 1)
                .Controls(contorolsnum).OnAction = actionname '1回目のここでエラー
                .Controls(contorolsnum).FaceId = menuitems(n, 2)

                If begingroup_or = 1 Then
                    .Controls(contorolsnum).BeginGroup = True
                    begingroup_or = 0
                End If
            End If
        Next n
    End With

 End Sub


 誰も返事がありませんでしたが色々調べたところこのマクロが
 悪くないようであることが判明しました。
 どうもお騒がせしてすいませんでした。
 またありがとうございました。

 ただ・・・
 その使えなくなった人のPSRSONALがおかしいのです。
 C:\Documents and Settings\AAA\Application Data\Microsoft\Excel\XLSTART\PERSONAL.XLS
 が開かないのです。他にもたくさんのpersonalが出てきたりするのですが
 とりあえずこのフォルダーにpersonalを入れても開いてくれません。
 なぜでしょうか?
 (かず)

 オプション−全般タブのXLSTART代替フォルダ名に別のパスが入力されているからでは?
 (1or8)

 OS 2000,OFFICE2003だと そんなのないような気がします。
 今過去ログとかをみて色々模索してみます。 
 (かず)

 EL2003 では「起動時に全てのファイルを開くフォルダ」のパスが違うのでは?
 (1or8)

 過去ログにあった ヘルプ−バージョン情報−使用できないアイテム
 の中にPERSONALが入ってました。
 これで全て解決しました ありがとうございます。
 (かず)

 解決済みのレスですが、過去ログを参考までに書いておきます。(1or8)
[[20070625102939]]『エクセル起動時に個人用マクロが起動されなくなった???』

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.