[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロのエラー』(かず)
会社でマクロをメニューバーに登録していたのですが, そのうちの一人が更新しようとしたらエラーになってしまいました。 (以前はできていたのですが・・・ちなみに その人のファイルを私がやっても エラーは発生しません。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.