
お世話になっております。
Excel2003を使用しております。
分かる人にはすぐ分かる問題かもしれませんが、
良くわからないため教えて下さい。
シートを別ブックにコピーします。(ここまでは出来ています。)
元々あったボタンを選択し、
マクロを登録しなおそうとするも、上手く行かず…
Dim StaticBook as Workbook と宣言し、
コピー先のブックを選別?できるようにしています。
そのため、シートをコピーした後に
With StaticBook.ActiveSheet
.Shapes("Button 1").Select
Selection.OnAction = StaticBOOK.Name & "!Sheet2.保存_Click"
.Shapes("Button 2").Select
Selection.OnAction = StaticBOOK.Name & "!Sheet2.再編集_Click"
.Range("A1").Select
End With
としてみたのですが、エラーが表示されます。
ButtonクラスのOnActionプロパティを設定できません。と表示されます。
元々、コピーすれば上手く動くとおもっていたのですが、
ボタンをクリックしたときの参照先が
コピー元のブックのままになっておりこれの改善方法がしりたいのです。
調べてみてもあまり良く分からず…
回答お願い致します!
No.2ベストアンサー
- 回答日時:
こんにちは。
そのようなコードは書いたことがありませんし、きちんと考えたことがありませんでしたが、
コードをよく観ると
>StaticBOOK.Name & "!Sheet2.保存_Click"
このSheet2 は、オブジェクト名ですから、ただしく、Sheet2であればよいのですが、そうでない可能性が高いです。もちろん、シートに一意のオブジェクト名をつければよいはずですが、コピーをされるシートですから、名前付け管理していくのは面倒だと思います。それより、システム側のオブジェクト名を取るほうが早いと思います。例えば、このようなスタイルになるのではないでしょうか。
以下の .CodeName というのが、シートのオブジェクト名になります。
'//
Sub Test1()
Workbooks("Origine.xls").Activate '元のシートをアクティブにする
ActiveWorkbook.Worksheets("Sheet2").Copy Before:=Workbooks("Destin.xls").Sheets(1)
With ActiveSheet
.Shapes("Button 1").OnAction = .Parent.Name & "!" & .CodeName & ".保存_Click"
End With
End Sub
'//
回答ありがとうございました!
解決いたしました^^
どうしても上手く行かない…と思い
出来たシートに手入力でマクロ登録をし、
その部分をマクロ記録してみて、
フルパスや、設定の違いを確認してみました。
確認したところ、
ブック名の両側に
'' が必要なことが判明しました。
なので、
.Shapes("Button 1").OnAction = "'"&.Parent.Name & "'!" & .CodeName & ".保存_Click"
というコードに書き換えたところ上手く動作してくれました^^
ありがとうございました!
No.1
- 回答日時:
型宣言をした変数(StaticBook)に
現在アクティブなブック(ActiveWorkbook)をセットする必要があります
Sub マクロの再登録()
'型宣言
Dim StaticBook As Workbook
'宣言したWorkbook変数にアクティブブックをセットします
Set StaticBook = ActiveWorkbook
'StaticBookのアクティブシートに対しての処理
With StaticBook.ActiveSheet
.Shapes("Button 1").Select
Selection.OnAction = StaticBook.Name & "!Sheet2.保存_Click"
.Shapes("Button 2").Select
Selection.OnAction = StaticBook.Name & "!Sheet2.再編集_Click"
.Range("A1").Select
End With
End Sub
この回答への補足
回答ありがとうございます。
元々,workbookとして設定し、
ブック名も設定してあり使えているのですが、
再度、ActiveWorkbookとして定義しなおさなければ
ならないのでしょうか?
実行してみたところ、上手く行きませんでした。
どうしても、同じようにエラーになっていまいます…
コピーした後のシートは、Sheet2とは限らないみたいで、
元々Sheet1~3は作成されていることがあり、
4以上も作成されている可能性があります。
試してみたところ、私の場合だと
コピー先にはSheet1,2,3が既にアリ、
コピーした後はSheet4(シート名)という設定になっていました。
このオブジェクト名?は取得できないのでしょうか…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/09 12:17
このQ&Aを見た人はこんなQ&Aも見ています
-
今年はじめたいことは?
今年はこれをはじめたい!ということを教えてください!
-
何回やってもうまくいかないことは?
みなさんには、何回やってもうまくいかないことはありますか?
-
今の日本に期待することはなんですか?
目まぐるしく、日本も世界も状況が変わる中、あなたが今の日本に期待することはなんですか?
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
-
EXCELのボタンによるマクロの登録名にファイル名が入ってしまう
PowerPoint(パワーポイント)
-
-
4
EXCEL_VBA 64bit版でのエラー
PowerPoint(パワーポイント)
-
5
エクセルVBAで作成した別ブックにVBAを記述したい
Access(アクセス)
-
6
ExcelVBA AddinでOnAction
その他(Microsoft Office)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
9
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
10
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
11
ExcelVBAで、ユーザーフォームを新規Bookにコピーしたい
IT・エンジニアリング
-
12
コピーしたファイルのマクロを実行すると前のファイルが開く
Access(アクセス)
-
13
オブジェクト名をVBAで指定する方法を教えてくださ
PowerPoint(パワーポイント)
-
14
エクセルVBAが途中で止まります
Visual Basic(VBA)
-
15
マクロをマクロを使ってコピーしたい
その他(Microsoft Office)
-
16
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
17
【ExcelVBA】sheet作成時にマクロを埋め込みたい
その他(Microsoft Office)
-
18
VBA This Workbookモジュールを別ファイルにコピーする方法
Visual Basic(VBA)
-
19
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
20
フレーム内に移動したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
Excelの行をコピーして貼り付け...
-
EXCELで別のブックから式をコピ...
-
Excel シートのコピーの際、ペ...
-
VBA シートをコピー後、ボタン...
-
【Excel VBA】シートコピー時、...
-
EXCEL2007でシートをコピーする...
-
Excel 数式の保護をしたセルを...
-
EXCEL VBA シートをコピーする...
-
エクセルシートを別のエクセル...
-
PDFファイルをコピーしてエクセ...
-
【VBA】コピー&複数個所のペー...
-
エクセルVBAですが教えてくださ...
-
シートが保護されていないのに...
-
エクセルのワークシートをUSBメ...
-
ExcelVBAで、ユーザーフォーム...
-
エクセルのページをシートごと...
-
【エクセル】プルダウン設定の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
Excelの行をコピーして貼り付け...
-
EXCELで別のブックから式をコピ...
-
Excel シートのコピーの際、ペ...
-
Excel 数式の保護をしたセルを...
-
エクセルの1シートの内容を複...
-
エクセルシートを別のエクセル...
-
エクセルでシートを「移動また...
-
エクセルのワークシートをUSBメ...
-
【VBA】コピー&複数個所のペー...
-
シートが保護されていないのに...
-
PDFファイルをコピーしてエクセ...
-
ExcelVBAで、ユーザーフォーム...
-
【Excel VBA】シートコピー時、...
-
エクセルVBA 1行飛ばしで転記す...
-
【エクセル】プルダウン設定の...
-
エクセルのページをシートごと...
-
ページの設定を別シートにコピ...
おすすめ情報