みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル テキスト追加マクロで”実行時エラー”発生

エクセル テキスト追加マクロで”実行時エラー”発生

保護されたスケジュール表の上へ、マクロでテキストボックスを追加しようとしてます。
別マクロで行挿入マクロがありますが、これを実行した後にテキスト追加マクロを実行すると
実行時エラー'2147024809(80070057)':選択した図形はロックされています。
が表示されます。
これを解決する方法をご教授ください。
追加されたテキストボックスは、位置変更とテキスト編集ができるようにしたいと思います。


◇行挿入◇
Sub 行挿入()
With ActiveSheet
.Protect Password:="Pass", UserInterfaceonly:=True
'処理
End With
End Sub

◇テキストボックス追加◇
Sub テキスト追加()
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
Selection.Left + 3, Selection.Top + Selection.Height - 11, _
50#, 12#).Select
End Sub

投稿日時 - 2010-05-29 15:37:34

QNo.5930271

困ってます

質問者が選んだベストアンサー

>行挿入マクロ実行後にセル保護ロックが解除されてしまいます。

ご質問の症状が,よく判りません。

いずれにせよ元のご質問の「編集可能なテキストボックスを追加するマクロ」とは,無関係なところで起きている問題のように見受けられます。
最新版のマクロと,いま困っている「具体的な症状(目に見えるエクセルの姿,どこ番地のセルに何をしたら,どの設定がどうなったといった)」について情報を添えて,新たなご相談として投稿し直してください。

投稿日時 - 2010-05-29 21:18:44

お礼

症状を画像添付で再投稿させていただきます。
宜しくお願いいたします。

投稿日時 - 2010-05-29 22:57:22

ANo.3

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

アプローチは色々ありますが,
>追加されたテキストボックスは、位置変更とテキスト編集ができるようにしたいと思います。

という事ですから,シートの保護の設定から見直した方が良いのかもしれませんね。


変更前;
Sub 行挿入()
With ActiveSheet
.Protect Password:="Pass", UserInterfaceonly:=True
 :

変更後:
Sub 行挿入()
With ActiveSheet
.Protect Password:="Pass", DrawingObjects:=false, UserInterfaceonly:=True
 :

投稿日時 - 2010-05-29 17:20:14

補足

keithinさん
ご回答、ありがとうございます。
テキストボックスの位置変更とテキスト編集ができるようになりましたが、
行挿入マクロ実行後にセル保護ロックが解除されてしまいます。
回避できないでしょうか?

投稿日時 - 2010-05-29 19:55:36

ANo.1

それはテキストボックスを配置した際、Selectするからエラーになるのです。
以下のようにしましょう。

Sub テキスト追加()
ActiveSheet.Shapes.AddTextbox msoTextOrientationHorizontal, _
Selection.Left + 3, Selection.Top + Selection.Height - 11, _
50#, 12#
End Sub

投稿日時 - 2010-05-29 16:52:32

補足

Kyboさん
早速のご回答、ありがとうございます。
エラーにならずにテキスト追加されましたが、
行挿入マクロを実行させた後は、テキストの書き込みと移動が出来ない状態です。
出来るようにしたいのですが、ご存知でしょうか。

投稿日時 - 2010-05-29 17:44:05

お礼

症状をお伝えし難いので画像添付で再投稿させていただきたく思います。
一方的で申し訳ございません。ありがとうございました。

投稿日時 - 2010-05-29 23:01:32

あなたにオススメの質問