質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

4525閲覧

Excel起動時にVBAで書き換えられるセルの保護について

Batoh33789

総合スコア136

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/03/30 00:31

お世話になります。

現在下記仕様を実現しようとしましたが、動作せず困っております。(詳細は下記参照)
仕様を実現するためには何を行えば良いのでしょうか。
お手数おかけ致しますが、ご助言頂けましたら幸いです。
よろしくお願いします。

●仕様
1.Excelオープン時に特定のセルに同じブックの全シート名をプルダウンにして入れる
2.上記セル以外のセルをロックして、入力できなくする

●発生している障害
・仕様1は実装出来ましたが、仕様2を実施すると、仕様1の途中でエラーが発生し、動作しなくなります。
(エラー箇所などは下記コード参照)

●エラーメッセージ
実行時エラー'1004'
アプリケーション定義またはオブジェクト定義のエラーです。

●こちらで試したこと
・保護される際に設定できるチェック項目のうち、ロックされたセル範囲の選択以外全てに
チェックを入れてみても同様の結果になりました。

●環境
・Windows7 Pro
・Excel 2016

●コード(VBA)

VBA

1Private Sub Workbook_Open() 2 Dim work As Worksheet 3 Dim selectlist As String 4 For Each work In ThisWorkbook.Worksheets 5 If selectlist <> "" Then 6 selectlist = selectlist & "," 7 End If 8 selectlist = selectlist & work.Name 9 Next work 10 ThisWorkbook.Worksheets("実行").Activate 11 With Cells(2, 3).Validation 12 .Delete 13 ' 下行でエラーが出ます。 14 .Add _ 15 Type:=xlValidateList, _ 16 Formula1:=selectlist 17 End With 18End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
お騒がせして申し訳ございません。

以下解決方法です。
シートの保護で引っかかるのであれば、マクロを動かす瞬間だけ保護を解除して、
終わったら再度保護をかければいいだけでした。

VBA

1Public Sub test() 2 Dim work As Worksheet 3 Dim selectlist As String 4 For Each work In ThisWorkbook.Worksheets 5 If selectlist <> "" Then 6 selectlist = selectlist & "," 7 End If 8 selectlist = selectlist & work.Name 9 Next work 10 ThisWorkbook.Worksheets("実行").Activate 11 ' 保護解除 12 ActiveSheet.Unprotect 13 With Cells(2, 3).Validation 14 .Delete 15 .Add _ 16 Type:=xlValidateList, _ 17 Formula1:=selectlist 18 End With 19 ' 保護 20 ActiveSheet.Protect 21End Sub

投稿2017/03/30 01:12

Batoh33789

総合スコア136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問