
いつもお世話になっております。
エクセル シート1に
下記のコードをいれてあります。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
UserForm1.Show vbmoderess
End Sub
シート追加したら追加したら
下記のコードをいれることはできるのでしょうか
今はシートを追加したらシートモジュールにコピーして
使用しています。
これをなんとかしたいのです
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
UserForm1.Show vbmoderess
End Sub
No.2ベストアンサー
- 回答日時:
こんばんは
ほとんどのシート(将来追加されるかも知れないシートを含む)で同じことを実行したいってことでしょうか?
であるなら、各シートモジュールに記述せずに、ThisWorkbookモジュールに記述しておくのが簡単と思います。
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
引数にシートオブジェクトが与えられますので、実行対象としたくないシートがある場合にはNameなどでチェックして、そのシートだけ省くようにしておけば、追加されたシートはそのままで対象として扱われます。
(わざわざコードのコピペを行う必要がなくなります)
No.3
- 回答日時:
#1です
ストレートに回答してしまいました。(ストレートに回答するようにしているので良いのですが)
さすが、#2様です。そのようにアドバイスするべきでした。
#2を推奨します
同様の処理をする場合、UserForm1がどのような処理がされるのか分かりませんが、ThisWorkbookモジュールからブックイベントでするべきです。
この場合、シート名などにも共通性がある場合が多く、Likeなどで特定するケースで出来ると思います。
逆に不確定なシートからUserForm1を呼びたい場合などは、ダブルクリックをトリガーにせず、トリガーを右クリックやショートカットキーに登録したりして使えば良いように思います。
ちなみに
#1のコードで変数登録する必要がないのに書いてあるのは、私のExcelVBAに既にあるコードの使い廻しだからで、使う事もありますが
VBAのコードをVBAから書き加えたり変更する事は改修(更新)などの時以外まずありませんが、比較的容易に出来ます。
が、重大なバグを生む可能性もあるのでやり方だけで良いように思いました
No.1
- 回答日時:
こんばんは
先ずは、こちら http://officetanaka.net/excel/vba/vbe/01.htm
を踏まえた上で
>シート追加したら なので
こんな感じで良いかと、、
Sub sample()
Dim WB As Workbook
Dim sh_name As String
sh_name = ActiveSheet.Name
Set WB = ActiveWorkbook
With WB.VBProject.VBComponents.Item(sh_name).CodeModule
.insertlines 2, "Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)"
.insertlines 3, "UserForm1.Show vbModeless"
.insertlines 4, "End Sub"
End With
End Sub
エラー対策及び、すでにあるシートを対象に実行する事は考慮していません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【ExcelVBA】sheet作成時にマクロを埋め込みたい
その他(Microsoft Office)
-
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
6
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
7
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
8
EXCELのSheet番号って変更できる!?
Visual Basic(VBA)
-
9
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
10
マクロをマクロを使ってコピーしたい
その他(Microsoft Office)
-
11
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
12
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
13
エクセルのvbaにて thisworkbookに記載のマクロを他のブックにマクロにて自動コピー出来る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
XL:BeforeDoubleClickが動かない
-
別のシートを参照して計算する方法
-
ExcelVBA シート名を複数セルか...
-
ExcelのVBAのマクロで他のシー...
-
実行時エラー1004「Select メソ...
-
ユーザーフォームに入力したデ...
-
エクセルVBAで。
-
特定の文字を含むシートだけマ...
-
VBA 指定した回数分、別シート...
-
エクセルのマクロで条件一致の...
-
エクセルVBA Ifでシート名が合...
-
VBA 検索して一致したセル...
-
実行時エラー'1004': WorkSheet...
-
excelのマクロで該当処理できな...
-
【VBA】指定した検索条件に一致...
-
【Excel VBA】シート表示、非表...
-
【VBA】色のついたシート名を取得
-
EXCELVBAを使ってシートを一定...
-
EXCEL VBAで複数シートから該当...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
XL:BeforeDoubleClickが動かない
-
VBA 指定した回数分、別シート...
-
VBAマクロでシートコピーした新...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
【VBA】全ての複数シートから指...
-
別のシートから値を取得するとき
-
ExcelのVBAのマクロで他のシー...
-
Excel チェックボックスにチェ...
おすすめ情報