お世話になっております。
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も見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
-
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
EXCELのボタンによるマクロの登録名にファイル名が入ってしまう
PowerPoint(パワーポイント)
-
-
4
エクセルVBAで作成した別ブックにVBAを記述したい
Access(アクセス)
-
5
ExcelVBA AddinでOnAction
その他(Microsoft Office)
-
6
EXCEL_VBA 64bit版でのエラー
PowerPoint(パワーポイント)
-
7
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
マクロをマクロを使ってコピーしたい
その他(Microsoft Office)
-
10
エクセルのコマンドボタンの位置をVBAで指定できませんか?
Excel(エクセル)
-
11
マクロボタンを別のファイルでも利用する方法
その他(Microsoft Office)
-
12
VBA This Workbookモジュールを別ファイルにコピーする方法
Visual Basic(VBA)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
15
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
16
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
17
ExcelVBAで、ユーザーフォームを新規Bookにコピーしたい
IT・エンジニアリング
-
18
コピーしたファイルのマクロを実行すると前のファイルが開く
Access(アクセス)
-
19
VBAでExcelの保存終了を取得したい
Excel(エクセル)
-
20
押したボタンの位置取得(共通のマクロ)
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
PDFファイルをコピーしてエクセ...
-
Excel シートのコピーの際、ペ...
-
EXCELで別のブックから式をコピ...
-
EXCELのVBAでシートコピーをし...
-
Excelの行をコピーして貼り付け...
-
エクセルでシートを「移動また...
-
エクセルのワークシートをUSBメ...
-
【エクセル】プルダウン設定の...
-
エクセルシートを別のエクセル...
-
EXCEL VBA シートをコピーする...
-
エクセルVBA 1行飛ばしで転記す...
-
ページの設定を別シートにコピ...
-
エクセルの1シートの内容を複...
-
Excel 数式の保護をしたセルを...
-
エクセルで、開くのに時間のか...
-
ExcelVBAで、ユーザーフォーム...
-
【Excel VBA】シートコピー時、...
-
【VBA】コピー&複数個所のペー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
Excelの行をコピーして貼り付け...
-
EXCELで別のブックから式をコピ...
-
エクセルでシートを「移動また...
-
Excel 数式の保護をしたセルを...
-
エクセルのワークシートをUSBメ...
-
Excel シートのコピーの際、ペ...
-
エクセルシートを別のエクセル...
-
エクセルの1シートの内容を複...
-
【VBA】コピー&複数個所のペー...
-
【Excel VBA】シートコピー時、...
-
ページの設定を別シートにコピ...
-
VBA シートをコピー後、ボタン...
-
【エクセル】プルダウン設定の...
-
PDFファイルをコピーしてエクセ...
-
ExcelVBAで、ユーザーフォーム...
-
エクセルのページをシートごと...
-
シートが保護されていないのに...
おすすめ情報