advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 27302 for マクロ (0.014 sec.)
[[20231020100913]]
#score: 2167
@digest: 8ba939341906a174e0899fc262c7137d
@id: 95331
@mdate: 2023-10-20T05:50:20Z
@size: 5065
@type: text/plain
#keywords: oshape (54500), 寿司 (15899), お寿 (13353), 該リ (13013), 新bo (10881), 司) (8724), onaction (7491), 恵袋 (6513), ロ名 (6373), ・`) (5831), 名記 (5831), 名! (5610), 力行 (5197), objects (4967), 名. (3931), vbnullstring (3455), mysh (2848), 流用 (2455), hyperlinks (2156), 用性 (2125), ・ω (1894), 汎用 (1642), マク (1401), 知恵 (1272), ク名 (1260), クロ (1259), の登 (1235), 別ブ (1216), 2023 (1205), 登録 (1193), ブッ (1142), 出力 (1118)
マクロを別ブックへコピー』(お寿司)
勉強させて下さい。 以下のブックのシートを書いてハイパーリンクを作るマクロを使っています。 名前が分かりませんが、標準モジュールではなく当該リンクを作るシートのObjectsのSheet1に書いてます。 Sub シート名記載() Dim i As Byte For i = 2 To Worksheets.Count ActiveSheet.Hyperlinks.Add anchor:=Range("c" & i + 2), _ Address:="", _ SubAddress:="'" & Worksheets(i).Name & "'" & "!A1", _ TextToDisplay:=Worksheets(i).Name Next End Sub これをフォームコントロールのボタンでマクロ名Sheet1.シート名記載をえらんで使ってます。 これが便利なので他のExcelでも使いたいと思い、シートをコピーしてボタンを押したところコピー元のExcelが開き、コピー元に記載がされてしまいます。 マクロの登録をし直せば望む動作が行われますのでコードではなくボタンの設定が悪いのかと思ったりコードを適切にかけばそんなことないのかと思ったりしますがお手上げです。毎回ボタンのマクロの登録しなおすしかないのでしょうか。 どうすれば良いか分かればご教示願えないでしょうか。 < 使用 Excel:Excel2016、使用 OS:Windows10 > ---- シートを別ブックにコピーした場合、ボタンに張り付いているマクロ名が 旧Book名!Sheet名.マクロ名 になっていると思います。これを 新Book名!Sheet名.マクロ名 にする必要があります。 以下に同じ質問をしている人がいて、マクロで書き換えることが提案されています。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11157690516 (ゆたか) 2023/10/20(金) 11:03:56 ---- 同じブックの場合はBook名を指定する必要はないですね。 誤)新Book名!Sheet名.マクロ名 正)Sheet名.マクロ名 (ゆたか) 2023/10/20(金) 11:14:27 ---- 多分これはマクロマクロの登録のし直しをしているということですかね。 う〜ん、僕がこの知恵袋のマクロをよく分からず失敗してしまいましたがこれをヒントにやってみたいと思いますが、 これだと結局このマクロを起動させるボタンが必要になり、 結果そのマクロも旧ブック名!になって同じになってしまいそうな気がしていますがどうなんでしょうか。 自分は個人マクロブックとかに入れたりそもそも分かるので良いのですが他人がワンクリックで使いたいと思っているところです。 (お寿司) 2023/10/20(金) 11:23:50 ---- 手順としては以下の通りです。 1.シートを旧ブックから新ブックへコピーする 2.ブック名変更用のマクロを動かす ブック名変更用のマクロはボタンに登録する必要はないですが、しても構いません。 その場合には、そのボタンの登録マクロ名だけ、手作業で変更する必要があります。 (シートのモジュールとして書いておけば、シートと一緒にコピーされますね) ただ、コピーされたブックで1回だけ実行する処理ですから、マクロエディタから起動すれば良いと思いますよ。 (ゆたか) 2023/10/20(金) 11:38:07 ---- ActiveXコントールのCommandBottunを使えばいいのでは? Formコントロールである必要がありますか? (´・ω・`) 2023/10/20(金) 11:38:33 ---- ゆたか様 なるほど、わかりました。ちなみに Sub InitAction() For Each oSh In ActiveWorkbook.Sheets For Each oShape In oSh.Shapes With oShape If oShape.OnAction <> vbNullString Then oShape.OnAction = ThisWorkbook.Name & "!" & Split(oShape.OnAction, "!")(1) End If End With Next Next End Sub 知恵袋のは汎用性あるタイプでそのまま流用してで良いんですかね。 (´・ω・`)様 特段必要は無いですが触れたことがなくまた、 そのように回答している知恵袋を見つけやってみた結果失敗したので諦めた経緯があります。 (お寿司) 2023/10/20(金) 12:05:35 ---- (´・ω・`)様 今改めて行ったところうまくいきました。 先ほどは何で出来なかったんでしょうか笑 取り敢えず〆とさせていただきます ありがとうございました。 (お寿司) 2023/10/20(金) 14:05:11 ---- 話が終わっていますが2点ほど。 ■1 ↓ですから、(´・ω・`)さんのアドバイスが一番手っ取り早いのでは? >標準モジュールではなく当該リンクを作るシートのObjectsのSheet1に書いてます。 適当に直しましたが↓のようなことじゃないですか? #シートモジュールに記述すること Private Sub CommandButton1_Click() Dim 出力行 As Long, MySH As Worksheet 出力行 = 4 For Each MySH In Me.Parent.Worksheets If MySH.Name <> Me.Name Then Me.Hyperlinks.Add _ anchor:=Me.Cells(出力行, "C"), _ Address:="", _ SubAddress:="'" & MySH.Name & "'" & "!A1", _ TextToDisplay:=MySH.Name 出力行 = 出力行 + 1 End If Next MySH End Sub ■2 >ちなみに〜知恵袋のは汎用性あるタイプでそのまま流用してで良いんですかね。 質問の意味がよくわかりません。 インデントが付いておらず見ずらいので整理してみると↓のようになっているわけですよね。 どのあたりが理解できないのでしょうか? Sub 整理() Dim oSh As Worksheet Dim oShape As Shape For Each oSh In ActiveWorkbook.Sheets For Each oShape In oSh.Shapes With oShape If oShape.OnAction <> vbNullString Then '▼ここでマクロの登録し直しをしている oShape.OnAction = ThisWorkbook.Name & "!" & Split(oShape.OnAction, "!")(1) End If End With Next Next End Sub (もこな2 ) 2023/10/20(金) 14:50:20 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/202310/20231020100913.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97050 documents and 608253 words.

訪問者:カウンタValid HTML 4.01 Transitional