• ベストアンサー

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

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

  • excel2003 個人用マクロブックが開きません

    Excel2003を使用していますが、マクロを個人用マクロブックへ保存しましたが、次にexcelを起動するときにpersonal.xlsが、自動的に開きません。C:\Documents and Settings\ユーザー名\Application Data\Microsoft\Excel\XLSTARTには、きちんと保存されているのですが・・。

  • エクセルで個人用マクロを移すには

    エクセル2002で使用していた個人用マクロを、他のPCにインストールしたばかりのエクセル2003で使えるようにするには、どういう手順をとればいいのでしょうか。 エクセル2002がある方のPCの、 C:\Documents and Settings\User\Application Data \Microsoft\Excel\XLSTART\PERSONAL.XLS を、 エクセル2003があるPCのXLSTARTフォルダにコピーしてみたのですが、エクセルファイルを開いてVBエディタを起動しても、個人用マクロの標準モジュールが表示されないのですが。

  • エクセル:ツールバーへのマクロ登録について

    エクセル2002でユーザー設定ツールバーのボタンに個人用マクロブックのマクロを登録して使用しています。 同じ登録を複数の人のPCに設定しているのですが、ある人のPCで、たまに”'PERSONAL.XLS'は既に開いています~”のメッセージがでるのですが、マクロの登録画面でマクロ名を変更すると使えるようになります。 普通に使えるときのマクロ登録画面に表示されるマクロ名は「PERSONAL.XLS!マクロ名」なのですがメッセージがでたときのマクロ名は「C:\Documents and Settings~」に変わっています。 どういう条件で使用するとこうなるのかおわかりになる方がいらっしゃったらお教えください。 よろしくお願いします。

  • Excel 2007: マクロブックをXLSTARTに入れると挙動がおかしくなる?

    いつもお世話になります。 マクロの配布を容易にするため、ブックにマクロを添付して、  C:\Documents and Settings\ユーザー名\   Application Data\Microsoft\Excel\XLSTART に置いてください、と言おうと思っているんですが、これに関連して以下のようなことが起きます。 (1)個人用マクロブックを作るとExcelが一発で閉じなくなる Excelでマクロを作って、個人用マクロブックに保存すると、以下のブックができる。  C:\Documents and Settings\ユーザー名\   Application Data\Microsoft\Excel\XLSTART\PERSONAL.XLSB このファイルができると、以下のように挙動が変わる。 1) 適当なブックをダブルクリックすると、Excelが起動し、そのブックが開く。 2) ウィンドウ右上端の[X]ボタンをクリックしてExcelを閉じようとすると、ブックだけが閉じて、Excelは終了しない<=ここが問題 3) もう1回[X]ボタンをクリックすると、Excelは終了する (2)任意のマクロ付きブックをXLSTARTに入れると、新規文書が開かなくなる Excelでマクロを作って、任意のブックに保存する。 Excel 2007で使う人と、2003で使う人がいるので、xlsで保存する。 ブックを非表示にして、XLSTARTディレクトリに入れると、個人用マクロブック同様にExcel起動時に開かれるので、マクロが使える。 こうすると、上の(1)の現象に加えて、さらに、以下の現象が発生する。 1) Excelを起動すると、通常は白紙の新規ブックが作成されるが、なぜか作成されず、Excelのみが起動される。 以上です。 任意のマクロブックをXLSTARTに入れながら、起動時に白紙のブックが開き、[X]クリックでExcelが一発で終了する方法はあるでしょうか。 よろしくお願いいたします。

  • Excel 2002 用の Excel10.xlb

    Windows XP で使用していた Office XP をアンインストールして、Windows 7 にすでにインストールしています。 Windows XP の場合、Excel 2002 のツールバーファイル Excel10.xlb が(私の記憶では)C:\Documents and Settings\ユーザー名\Application Data\Microsoft\Excel に存在していましたが、Windows 7 で 「.xlb」をキーワードにして検索しても、該当ファイルが見つかりません。 Windows 7 でも C:\Documents and Settings という名のフォルダはありますが、そこを開こうとしても「C:\Documents and Settings にアクセスできません。アクセスが拒否されました」と叱られます。 そのフォルダ内に Excel10.xlb があるのならそれを一旦削除したいのですが、どうすればよろしいでしょうか?

  • マクロでデスクトップにあるフォルダの中のファイルへリンクさせたい

    エクセルでマクロボタン作成後、ボタンを押せば、デスクトップにあるフォルダの中のファイルへリンクさせるようにしたいのですが。マクロ組んでやりましたができません。なぜなのか教えていただけますか。 リンクするアドレス先→C:\\Documents and Settings\\Owner\\デスクトップ\\指導要綱\\091104\\大阪府\\大阪市 自分が組んだマクロ Sub ボタン4_Click() ' ' ボタン4_Click Macro ' マクロ記録日 : 2010/2/18 ユーザー名 : mako ' Shell "C:\Documents and Settings\Owner\デスクトップ\指導要綱\091104\大阪府\大阪市" End Sub

  • エクセルマクロの保存するフォルダ

    WindowsXPでエクセルマクロを保存するフォルダを教えてください。 ReadMeにはC:\Documents and Settings\ユーザー名\Application Data\Microsoft\AddInsとなっていますが、該当するファオルダが みつかりません。 エクセル2002です。

  • マクロのバックアップについて

    Windows XPでMicrosoft Office Excel2003を使用しています。Windows XPを再セットアップ予定です。ついてはマクロ記録をバックアップしたと思います。 マクロ作成の際「個人用マクロブック(PERSONAL.XLS)」に記録した場合は以下のファイルに含まれています。 C:\Documents and Settings\ユーザ名\Application Data\Microsoft\Excel\XLSTART\PERSONAL.XLS ということを教えてGooで教わりましたが、\ユーザ名\Application となりません。ユーザー名の後がデスクトップやマイドキュメントなどが表示されます。どうしたらよいでしょうか。教えて下さい。

  • エクセルのマクロで、他のブックを開くときについて

    マクロの記録を利用して、他のブックを開くことをしました。 マクロのモジュールを見たら、 ChDir "C:\Documents and Settings\*****\デスクトップ" Workbooks.Open Filename:="C:\Documents and Settings\*****\デスクトップ\○○.xls" となっていました。 1行目の「Chdir」というのはなんでしょう? また、2行目では開きたいブックをパスを使ってあらわしています。 今マクロを動かしているブックと同じフォルダ内にあるブックや そのフォルダから見て上位のフォルダとか、「c:」から始まる パスを使わないような書き方はあるのでしょうか? ご助言お願いします。

  • 統合マクロでパスの取得方法

    お世話になります。 集計ファイルでエリア・商品で集計をとっています。 一つのファイルにまとめたいのでエリアをシート名による串刺し 商品を統合を使って集計していますが 毎回統合ボタンを押すのが大変で マクロを使い下記のコードを使っていますがファイルのパスで固定されているので 人に渡すとファイル名の変更、ユーザーの違いによりエラーになってしまいます。 現在開いているファイルの名前とパスをマクロに取り込み統合させる事は可能でしょうか Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/9/29 ユーザー名 : user ' ' Sheets("一般A").Select Range("b6").Select Selection.Consolidate Sources:=Array( _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]〇〇一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]□□一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]△△一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]××一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]●●一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]■■一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]▲▲一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]++一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]※※一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]%%一般A'!R6C2:R64C9"), _ Function:=xlSum, TopRow:=False, LeftColumn:=False, CreateLinks:=False Sheets("一般B").Select Range("b6").Select Selection.Consolidate Sources:=Array( _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]〇〇一般B'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]□□一般B'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]△△一般B'!R6C2:R64C9", _ ・ ・ ・ ・ End Sub DIMとかActiveWorkbook.Pathとか組み込みましたが うまく行かないです。 どうぞ助けてください。

専門家に質問してみよう