
No.2ベストアンサー
- 回答日時:
一例です
Sub auto_open()
If ThisWorkbook.Name = "Book1" Then
Call 処理
End If
End Sub
sub 処理()
auto_openにあった処理をこっちへ移動する
end sub
の様にして
If ThisWorkbook.Name = "Book1" Then
この行に、最初のファイル名を記入しておき判断させ
ファイル名が変わったら"処理"マクロは実行されない
参考まで
No.3
- 回答日時:
1.>1回目はマクロを行いたいのですが、次回起動時はマクロを使用したくありません。
2.>名前を付けて保存(時)後にマクロを削除するマクロ
3.>2回目以降起動時(該当のファイル名が違う場合に、Auto_Openが動作しない)マクロ
全部可能ですが、質問者さんの考え方や技術しだいと思います。そのまま、質問しっぱなしっていうだけでは、上手くないと思います。もちろん、私自身としては、#2さんの回答は、私も使っているテクニックです。ただし、少し複雑なのは、最初にブックを使用した時に自分専用の環境を作り、それでチェックさせるという方法です。だから、フォルダを変えても、動かないような作りにしています。
昔ながらの方法は、キーファイルからマクロを実行して、処理をすればよいのですが、これが一番簡単です。ただし、それでは、趣旨が違うかもしれませんし、それでも、ある程度の技術レベルは必要だと思います。Sheets.Copy は、マクロを除いてコピーということは、出来ないというぐらいは気がつかないといけないかもしれません。
2.に関しては、ご質問の趣旨は、ユーザーの手間なしに、マクロ・コードを削除させるわけです。それ自体は、ここで発言がなくても、インターネット検索すれば、10万件以上も出てきます。ただ、マイクロソフト側が、Extensibilityを使う方法に、セキュリティを設け安全策を講じたわけですが、セキュリティの問題以上に、私は個人的に、自己破壊型マクロは、あまり好きではありません。VBAを長年やっている人なら、一度や二度は試すコードでも、それを実際に実務で使用する人は、まずいないと思います。プロレベルの人が、こうしたテクニックを奨励することもありません。Excelの場合は、ユーザーフレンドリーにも、限界があるからです。
私自身としては、もう一度、こういう設計はしっかりと考えてもらい、最終的な結果からさかのぼって、単なるテクニックではなく、もう少し、周辺環境(OS とVersion, ExcelのVersion)や、その必要な理由や具体的な内容を書いていただかないと、いけないような気がします。面倒だなって思うなら、#2さんのテクニックで十分だと思います。ただ、ある時はマクロ付きブックで、ある時はマクロなしブックという可変型のブックよりも、最初から、マクロ付きブックと、そうでないブックとは明確に分けたほうがよいのは言うまでもありません。
No.1
- 回答日時:
マクロを直接除去したり操作するマクロは,まんま「マクロウィルス」の作り方につながりかねないので,ここのような公開の掲示板等では触れない話題です。
また比較的最近のエクセルでは,標準ではそういった操作が通らないセキュリティが仕込まれています。ただ
>該当のファイル名が違う場合に、Auto_Openが動作しない
といった段取りで良いなら例えば,
1.Auto_Openが起動する
2.全ての(若しくは必要な)シートを,シートの複写して新しいブックを起こす
(現在開いている中のブックの全てのシートを移動するマクロを書いてしまうと上手く行かないので注意)
3.複製ブックを名前を付けて保存し,以後はそちらを使って貰う
4.オリジナルブックは必要なら「致命的な」修正を行い,以後は使えない格好にして上書き保存しておく
などのような手はずで,Auto_Openを「置き去り」にしたマクロ無しブックを準備できます。
例:
sub Auto_Open()
sheets.copy
activeworkbook.saveas filename:="no_macro.xls"
thisworkbook.sheets(1).range("A1:M100") = "このブックはもう使えません"
thisworkbook.close savechanges:=true
end sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) あるマクロを起動し、その際に使用したデスクトップにある1.csv(マクロを起動したせいで加工されてい 3 2023/06/02 22:35
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- Word(ワード) Word 2016のマクロを Word 2021のWordでキー動作させたい 3 2023/04/12 16:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Word(ワード) office 2021へ自分用のクイックアクセスとマクロをコピーしたい 2 2023/03/11 21:15
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて 重複したものがあれば行を削除するとい 1 2023/02/27 18:49
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
複数のマクロボタンをまとめて...
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
エクセルの、記録を終了したマ...
-
Excelマクロで、稼働中のマクロ...
-
エクセルマクロで、別のブック...
-
エクセルで、「いいね」のよう...
-
エクセル マクロ名にブック名...
-
エクセルでマクロ(Excel 4.0)...
-
Excelのマクロ名の並び順の法則...
-
エクセルのヘッダー番号を順番...
-
(Excel VBA)シートコピー時マ...
-
【エクセル】 自作チェックボ...
-
マクロをマクロを使ってコピー...
-
エクセルの表を複数枚印刷した...
-
Excel:マクロを消す方法教えて...
-
ワードの[印刷_印刷範囲]のデフ...
-
LDPlayerのマクロの編集方法を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
複数のマクロボタンをまとめて...
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
エクセル マクロ名にブック名...
-
エクセルでマクロ(Excel 4.0)...
-
Excelマクロで、稼働中のマクロ...
-
エクセルで、「いいね」のよう...
-
エクセルマクロで、別のブック...
-
エクセルの、記録を終了したマ...
-
エクセルの表を複数枚印刷した...
-
別シートのマクロボタンをマク...
-
LDPlayerのマクロの編集方法を...
-
(Excel VBA)シートコピー時マ...
-
Ctrl+Zが使えない
-
Excelで、マクロが含まれ...
-
他のBOOKにマクロを反映させな...
-
Excel:マクロを消す方法教えて...
-
エクセルで明日の日付を表示す...
おすすめ情報