![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Excelのマクロについて、また質問させていただきます。
シートを保護してもマクロが使えるようにしたいのです。
Selection.Validation.Add Type:= _
xlValidateList, AlertStyle:= _
xlvalidalerstop, Operator:= _
xlBetween, Formula1:="=$A$1"
というようなマクロを作ったとします。
このままなら使えるのですが
シートを保護すると
アプリケーション定義またはオブジェクト定義のエラーです。
と表示されるようになります。
前回質問させていただいたときにアドバイスいただいた
Validation.Delete
を付けても
状況は変わりません。
Unprotect password
や
Protect userinterfaceonly:=True
を付けても、やはり無理なのです。
マクロについては
まだまだ初心者の域を脱していません。
今回もまた明快なお答えをいただけること
期待しております。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>起動時にやはりパスワードを入れなくてはいけませんよね。
ブックのパスワードですか?
>文字通り自動的に使えるようにしたいのです。
シートにパスワードを掛けた状態でAuto_Openに
ActiveSheet.Protect userinterfaceonly:=True
とするだけで、パスワード不要でVBAから操作できました。(Excel2000)
この回答への補足
ごめんなさい。
やはりうまくいきません・・・
Excel12002ですが、バージョンは関係ないですよね。
念のため、コピーして貼り付けてみます。
Sub Auto_Open()
ActiveSheet.Protect userinterfaceonly:=True
End Sub
Sub a()
Selection.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=$A$1"
End Sub
ここでは改行マークが入っていませんが
もし画面の関係で改行されているとしても
実際はSelectionから"=$A$1"まで1行にしています。
No.1
- 回答日時:
どのように書いたのか解りませんが・・・。
「Protect userinterfaceonly:=True」は、エクセル起動後、”コード実行前”に別に1度だけ実行する必用があります。(別処理)
通常は、エクセルの自動実行(起動後に自動実行)等で処理します。
あとは、コード内で保護解除と保護を行う方法。
ActiveSheet.Unprotect
'処理
Selection.Validation.Add Type:= _
xlValidateList, AlertStyle:= _
xlvalidalerstop, Operator:= _
xlBetween, Formula1:="=$A$1"
ActiveSheet.Protect
http://search.goo.ne.jp/web.jsp?status=select&fr …
この回答への補足
回答ありがとうございます。
「ActiveSheet.Unprotect」については
記入する場所を変えたところ
うまく認識するようになりました。
マクロの途中に入れていたことが悪かったようです。
ただ、パスワードは時々変えなくてはならないので
これを使うためにいちいちマクロを変更するのは
やはり面倒かもしれません...
そこで「Protect userinterfaceonly:=True」なのですが
自動実行の「Auto_Open」では
起動時にやはりパスワードを入れなくてはいけませんよね。
パスワードを知らない他の人でも
文字通り自動的に使えるようにしたいのです。
申し訳ありませんが、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで曜日を入れたい
-
条件付き書式でやりたいのですが
-
【マクロ】可視セルのみコピー...
-
Excelの警告について
-
Excelで時間の計算の方法 7時45...
-
Excelで1週間毎の集計(今週と...
-
【Excel】Powerクエリーの取り...
-
重複しない値を取り出したい
-
Googleスプレッドシートどの関...
-
【マクロ】色のついている行を...
-
Excelで特定の文字列が含まれて...
-
エクセルの数式バーのフォント...
-
任意の値が存在する行に名前を...
-
半角カタカナをヘボン式ローマ...
-
教えていただければと思います ...
-
エクセルVBA、別ブックへ転記す...
-
EXCELのような表を使っています...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
エクセルで現場ごとに機材の移...
-
ユーザー定義関数をアドイン登...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの数式バーのフォント...
-
エクセルでファイルの最終更新...
-
2列に入っているデータを1列...
-
データチェックを行うエクセル...
-
再質問です。マクロの修正箇所...
-
エクセルで 自動的に◯や数字を...
-
数字入力後他の文字等が表示さ...
-
Excel 小さくなったスクロール...
-
F9キーについて。
-
【ExcelVBA】ダブルクォーテー...
-
Excelに詳しい方! B列が「日...
-
セルの数を求めたい
-
Excelを無料で使うには? パソ...
-
IFとIFS関数
-
【Excel】別シートから条件に合...
-
EXCELの散布図で日付が1900年に...
-
ある表にフィルターをかけて出...
-
【ExcelVBA】名前を付けて保存→...
-
Excelセルを跨いで合計を出す方法
-
エクセルのツールバーから数値...
おすすめ情報