• ベストアンサー

個人用マクロブック移動後の不具合

PC1のユーザー名"abcd"が作成したエクセルの個人用マクロブックを、PC2のユーザー名"efgh"が使用します。 PC1の"PERSONAL.XLS"と"Excel11.xlb"を、PC2の"C:\Documents and Settings\efgh\Application Data\Microsoft\Excel"にコピーしました。 マクロは全て、ツールバーにボタンイメージが貼り付けられています。 なんらかのマクロを実行しようとしてボタンイメージをクリックすると、マクロが見つからないというメッセージが表示されてしまいます。 "C:\Documents and Settings"の次のフォルダ名が変わったことが原因のようですが、この状況を最も効率よく是正するにはどういった方法を用いればいいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

#1です。 「新しいメニュー」を作り、その上に「ユーザー設定ボタン」を置いた場合には前述マクロでは変更出来ないようです。 Wendy02さんが教えてくれた BuiltIn = False 使いつつ、一応、上記のパターンまでは変更出来ました。(検証 Excel2000) (例によって実際の変更部分2箇所はコメントアウトしてあります) 「ユーザー設定ボタン」を置いた場所によって、他にも対応が必要かも知れません。 後はご自分で考えて見てください。 Sub Test() Dim cmd As CommandBar, i As Integer, s As String Dim cmdPop As CommandBarPopup, c As CommandBarControl  For Each cmd In Application.CommandBars   For i = 1 To cmd.Controls.Count     Select Case cmd.Controls(i).Type     Case msoControlButton       If cmd.Controls(i).BuiltIn = False Then         s = cmd.Controls(i).OnAction         Debug.Print s         s = Replace(s, "\abcd\", "\efgh\")         Debug.Print s         'cmd.Controls(i).OnAction = s       End If     Case msoControlPopup       Set cmdPop = cmd.Controls(i)       For Each c In cmdPop.Controls        If c.Type = msoControlButton Then          If c.BuiltIn = False Then           s = c.OnAction           Debug.Print s           s = Replace(s, "\abcd\", "\efgh\")           Debug.Print s           'c.OnAction = s         End If        End If       Next c     End Select   Next i  Next cmd End Sub

yumerie
質問者

お礼

ありがとうございます。 教えて頂いた方法ではうまくいきませんでした。 取りあえず、PC2に"C:\Documents and Settings\abcd\Application Data\Microsoft\Excel"フォルダを作成し、そこに移行ファイルをおさめることで解決しました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 #1 のpapayuka さんのマクロで完了しないのでしたら、後は、手動で取り付けたらいかがですか? ただし、こうしてみたら、どうなるかなって思いますが。 If cmd.Controls(i).ID = 2950 Then   ↓ If cmd.Controls(i).BuiltIn = False Then これは、OnAction プロパティが設定されているものを、すべて引っ張りだします。 このご質問に関しては、元々、Personal.xls はともかく、*.xlb ファイルを移植するのは、少し無理があったと思いました。通常、ツールバーは、単独の xls のファイルに一旦コピーして、それを別のPCに移動させる、という手段を取ります。そうすると、自動的に(否応なく)、別のPC の*.xlb ファイルにコピーされます。*.xlb の移植でトラブルがなかったのは幸いだと思います。

yumerie
質問者

お礼

ありがとうございます。 教えて頂いた方法ではうまくいきませんでした。 取りあえず、PC2に"C:\Documents and Settings\abcd\Application Data\Microsoft\Excel"フォルダを作成し、そこに移行ファイルをおさめることで解決しました。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

VBAで変更してしまうとか、、、 ユーザー設定ボタンに割当てたマクロなら下記で変更可能かと思います。 例では実際の変更部分をコメントアウトしてありますけど。 Sub Test() Dim cmd As CommandBar, i As Integer, s As String  For Each cmd In Application.CommandBars   For i = 1 To cmd.Controls.Count     If cmd.Controls(i).ID = 2950 Then      s = cmd.Controls(i).OnAction      Debug.Print s      s = Replace(s, "abcd", "efgh")      Debug.Print s      'cmd.Controls(i).OnAction = s     End If   Next i  Next cmd End Sub

yumerie
質問者

お礼

ありがとうございます。 一部のマクロが実行できるようになりましたが、依然としてマクロが見つからないと表示されるケースが多数あります。

関連するQ&A