エクセルマクロの保護解除とテキストボックス追加

このQ&Aのポイント
  • エクセルのマクロを使用して、作業工程表に日付けを入力し、指定のセルをべた塗りし、テキストボックスを追加する方法を紹介します。
  • また、行挿入ボタンを使用して行の追加を行う際に、セルの保護が解除されないようにする方法も説明します。
  • これにより、セルの保護を維持しながらテキストボックスの追加や行の挿入が行えるようになります。
回答を見る
  • ベストアンサー

エクセル マクロ 保護解除とテキストボックス追加

エクセル マクロ 保護解除とテキストボックス追加 作業工程表へ日付けを入力すると■でべた塗りされ、 ボタンで行挿入とテキストボックスが追加(追加後にテキスト入力と移動可能)仕様を作りたいです。 式保護のためD2~R7はロックさせてますが、次の手順で操作するとセルの保護が解除されてしまうため、解除されないようにしたいです。 (1)ファイルを開く、マクロ有効 (2)テキスト追加ボタンで選択したセルの位置へテキストボックス追加(入力、移動可能)  この時、保護解除されていない。 (3)行挿入ボタンで行挿入、D2~R8保護解除される。 Sub テキストボックス() ActiveSheet.Shapes.AddTextbox msoTextOrientationHorizontal, _ Selection.Left + 3, Selection.Top + Selection.Height - 11, _ 50#, 12# End Sub Sub 行挿入() With ActiveSheet .Protect Password:="123", DrawingObjects:=False, UserInterfaceonly:=True Range("A65536").End(xlUp).Offset(0).Select ActiveCell.Resize(1, 23).Select Selection.Copy Selection.Insert Shift:=xlDown Range("A65536").End(xlUp).Offset(0).Select ActiveCell.Resize(1, 3).Select Selection.ClearContents End With End Sub

この投稿のマルチメディアは削除されているためご覧いただけません。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

ふむ。。なるほど。ご利用のExcelは2007だった訳ですね。 では,次の2つ修正しましょう。 1)行挿入マクロのシート保護は,まじめに?直します 2)テキストボックス追加のマクロは元に戻します。 Sub テキストボックス() ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ Selection.Left + 3, Selection.Top + Selection.Height - 11, _ 50#, 12#).select End Sub Sub 行挿入() With ActiveSheet .UnProtect Password:="123" Range("A65536").End(xlUp).Offset(0).Select ActiveCell.Resize(1, 23).Select Selection.Copy Selection.Insert Shift:=xlDown Range("A65536").End(xlUp).Offset(0).Select ActiveCell.Resize(1, 3).Select Selection.ClearContents .Protect Password:="123", DrawingObjects:=False End With End Sub

yuma07chan
質問者

お礼

できました!! ありがとうございました。 また何かありましたら、宜しくお願いいたします。

関連するQ&A

  • エクセル 行追加マクロについて

    エクセル 行追加マクロについて 2007エクセルマクロ初心者です。 スケジュール表を作成、行追加マクロを作ろうとしてます。 シートの上下に表があり、上の表に行追加です。 関数式を壊したくないので、一部セルへロックをかけています。 以下の点についてご教授をお願いいたします。 行追加マクロを実行するとパスワードを要求されます。 聞かれないようにできないでしょうか。? パスワードを入力した以降は要求されませんが シートの保護解除を選択すると保護が解除されてしまいます。 パスワード記載のマクロを試したことがありますが、 表へオートシェイプが描写できなかったので断念しました。 Sub 行追加() With ActiveSheet 'シート保護解除 .Unprotect Range("A65536").End(xlUp).Offset(-8).Select ActiveCell.Resize(1, 79).Select Selection.Copy Selection.Insert Shift:=xlDown Range("A65536").End(xlUp).Offset(-8).Select ActiveCell.Resize(1, 9).Select Selection.ClearContents 'シート保護 .Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ True End With End Sub

  • エクセルマクロについて

    最終行の1つ下の行に100000と入力したいですが Range("b65536").Select Selection.End(xlUp).Select ActiveCell.Offset(0, 1).Value = 100000 としてもうまく行きません Selection.End(xlUp).Select この部分だけで なんとかなるのでしょうか よろしくお願い致します

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

    エクセル テキスト追加マクロで”実行時エラー”発生 保護されたスケジュール表の上へ、マクロでテキストボックスを追加しようとしてます。 別マクロで行挿入マクロがありますが、これを実行した後にテキスト追加マクロを実行すると 実行時エラー'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

  • EXCELのマクロについて

    お世話になっております。 以下のマクロを1万行分繰り返したいのですが、回数を1万回と指定する構文を 教えてください。よろしくお願いします。 Sub Macro16() ' ' Macro16 Macro ' ' Keyboard Shortcut: Ctrl+Shift+Z ' ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove ActiveCell.Offset(-1, 0).Range("A1:M1").Select Selection.Copy ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(-1, 2).Range("A1").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "7/5/1905" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "7/6/1905" ActiveCell.Offset(1, -2).Range("A1").Select End Sub

  • エクセルのマクロで

    お世話になります 下記のマクロで実行した所 100まで書式設定で保護、ロックしたいのですが b3:l3はロックするものの 4行目以降はロックしません どうしたらいいでしょうか もう1つ、このシートはいつもc3からはじめたいのですが If ActiveCell.Value >= "" Then の部分はどうしたらいいでしょうか よろしくおねがいいたします 初心者でバカな質問ですみません Sub マクロ1() Dim i As Integer For i = 1 To 100 If ActiveCell.Value >= "" Then Range("B3:l3").Select Selection.Locked = True Selection.FormulaHidden = False End If ActiveCell.Offset(1, 0).Select Next End Sub

  • excel マクロ

    Sub Macro1() ' ' Macro1 Macro ' ' ActiveCell.Offset(-1, 0).Range("A1:G1").Select Selection.Copy End Sub マクロの記録だけでこのコードを作ることは可能でしょうか?

  • エクセル マクロ 行

    エクセル マクロについて Sheet1にはボタンがあり そのボタンをクリックすると フォームが表示してそのテキストに記入して、記録ボタンを押すと Sheet1最終行のフォームからシートにコピーするボタン方法は出来るのですが・・それだと最終行が新しい記載になってしまいます。 Range("a65536").End(xlUp).Offset(1).Select Selection = Selection.Row - 1 例えば A1 タイトル A2  小項目 A3  挿入させたい! A列の3行目から挿入して、その後も常にA3から挿入したいです。 新しい記載は常にA3にさせたいのですが、どうすれば良いのでしょうか?記述を教えて下さい。

  • エクセルで行を非表示にするとアクティブなセルが・・・

    エクセルで行を非表示にするとアクティブなセル?行?がどこかわからなくなり、マクロでアクティブなセルを移動するときにエラーが出ます。 Sub example() ActiveSheet.Range("D3").Select Do Until ActiveCell = 23 If ActiveCell <> "" Then ActiveCell.Offset(1, 0).Select ElseIf ActiveCell <> "" Then ActiveCell.Offset(1, -3).Select ElseIf ActiveCell <> "" Then ActiveCell.Offset(1, -6).Select Else: ActiveCell.EntireRow.Select Selection.EntireRow.Hidden = True ActiveCell.Offset(0, -6).Select End If Loop End Sub 一番下のActiveCell.Offset(0, -6).Select にエラーが出るのですが、どうすればセルを移動できるでしょうか?

  • エクセルのマクロ

    縦方向に連続したセルを選択状態にした時に、選択セルを基点として右横方向に連続してデータが入力されているセルを罫線で囲う、という処理をマクロで実行したいのですが。 例えば、以下の図で黒丸がデータ入力セルであるとすると、C1~C4を選択状態にして実行すると、C1~D1とC2~F2とC4が罫線で囲われます。  AB CD EFG 1○●●●○○○ 2●●●●●●○ 3○○○○○○○ 4●●●○○○○ 以下のマクロを実行すると、上図の3行目と4行目のところがかなり余計に罫線が引かれてしまいます。どう修正すればいいでしょうか? Sub test1()  yc = Selection.Rows.count  aa = ActiveCell.Address  For y = 0 To yc - 1  ActiveCell.Offset(y, 0).Select  Range(ActiveCell, ActiveCell.End _       (xlToRight)).Select        With Selection.Borders(xlEdgeLeft)       .LineStyle = xlContinuous       .Weight = xlThin       .ColorIndex = xlAutomatic    End With    With Selection.Borders(xlEdgeTop)       .LineStyle = xlContinuous       .Weight = xlThin       .ColorIndex = xlAutomatic    End With    With Selection.Borders(xlEdgeBottom)       .LineStyle = xlContinuous       .Weight = xlThin       .ColorIndex = xlAutomatic    End With    With Selection.Borders(xlEdgeRight)       .LineStyle = xlContinuous       .Weight = xlThin       .ColorIndex = xlAutomatic    End With    Range(aa).Select   Next y End Sub

  • エクセルマクロで改ページプレビュー

    お世話になります。 Sub 行挿入() For r = 3 To 50 If Len(Cells(r, 2)) = 13 Then Sheets("sheet2").Select Rows("1:55").Select Selection.Copy Rows("56:56").Select Selection.Insert Sheets("sheet1").Select End If Next End Sub というコードを書いたのですが、「End If」の前に(r-1)ページ目として印刷範囲を55行追加する、というコードを考えたのですがうまくいきません。教えていただけないでしょうか。

専門家に質問してみよう