• 締切済み

マクロで表を削除したいのですが

nobu555の回答

  • nobu555
  • ベストアンサー率45% (158/345)
回答No.1

>下記のようなマクロでは何故かA列とB列のデータしかクリアできません。 下記は、ヘルプの抜粋です。 CurrentRegion プロパティ アクティブ セル領域 (Range オブジェクト) を返します。 アクティブ セル領域とは、空白行と空白列で囲まれたセル範囲です。 つまり、C列が空白列のために A列とB列のみクリアされます。 >Range("A3").CurrentRegion.Select 上記コードを下記コードに変更してみては如何でしょう。 Range("A3", Range("A3").End(xlDown)).Resize(1, 10).Select

micchy1974
質問者

お礼

空白列があったからなんですね。 コードを変更してみたのですが、1行分しかクリアできませんでした。 複数行(表の部分全て)をクリアするにはどうしたらいいでしょうか?

関連するQ&A

  • excel2000マクロエラー

    下記のマクロを実行したときにエラーがでます。 Sheets("売上日報").Select Application.CutCopyMode = False ActiveSheet.Unprotect Sheets("売上日報").Select ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenasios:=True エラーメッセージ アプリケーション定義またはオブジェクト定義のエラーです。 下記のところでマクロがとまります。 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenasios:=True

  • エクセル:常に保護をかけるがマクロは有効

    シートに、マクロ実行時以外保護をかけておきたいです。 (マクロで、ロックをかけたセルを操作したいので) 「マクロを記録する」で保護をかける操作を記録してもらったところ、 「許可する操作」は以下の記述で実行されるようです。 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _ AllowInsertingColumns:=True, AllowInsertingRows:=True, _ AllowDeletingColumns:=True, AllowDeletingRows:=True ここに「マクロからの変更は有効」の UserInterfaceOnly:=True を加えた以下のコードは、 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _ AllowInsertingColumns:=True, AllowInsertingRows:=True, _ AllowDeletingColumns:=True, AllowDeletingRows:=True, UserInterfaceOnly:=True どのSubに記述すればよいでしょうか。 ワークシートに直接書込むんですよね? Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub に書いてみたら一時期正常に動いていたと思うのですが、どうやら勘違いだったみたいです。 ActiveもChangeも違うようなのですが(なぜかどちらも一時は動いたような…)。

  • マクロの修正をお願いします。

    エクセルのマクロに関する質問です。 今開いてるブックの『Aシート』に転送ボタンを作成します。これとは別に『Bシート』を作り、『Aシート』の2列目からAA列目までと、『Bシート』の2列目からW列目までのデータ(言葉や数値など)を、ボタンを押して、Cドライブ共有フォルダ内の『マクロ』というブック、『1シート』ならびに『2シート』の名前のシートにセルB9~,C9~,D9~…といったように毎日転送(コピー)しようと思います。 イメージとしては以下の通りです。 【5/3】 『Aシート』 日付  名前   時刻  データ   … 5/1   田中  7:30  534986 5/2   太田  13:00  691324 5/3 鈴木  14:00 143985 ↓[転送ボタン] 『1シート』 日付  名前   時刻  データ   … 5/1   田中  7:30  534986 5/2   太田  13:00  691324 5/3 鈴木  14:00 143985 【翌日5/4】 『Aシート』 日付  名前   時刻  データ   … 5/1   田中  7:30  534986 5/2   太田  13:00  691324 5/3 鈴木  14:00 143985 5/4   佐藤 8:30  068912 ↓[転送ボタン] 『1シート』 日付  名前   時刻  データ   … 5/1   田中  7:30  534986 5/2   太田  13:00  691324 5/3 鈴木  14:00 143985 5/4   佐藤 8:30  068912 5/5以降も下の行に毎日『Aシート』『Bシート』に入力したデータを『1シート』『2シート』に転送(コピー)し保存します。 その際、転送先はシート保護をしておきたいのです。 Sub Macro1() Dim GYOU As Long Dim 様式1 As Worksheet, 様式2 As Worksheet Dim 様式A As Worksheet, 様式B As Worksheet With ThisWorkbook Set 様式A = .Worksheets("様式A") Set 様式B = .Worksheets("様式B") End With With Workbook.Open(Filename:="C:\共有\マクロ.xlsx") Set 様式1 = .Worksheets("様式1") Set 様式2 = .Worksheets("様式2") 様式1.Unprotect 様式2.Unprotect 様式A.Unprotect 様式B.Unprotect 様式A.Range("B16:AA2000").Copy 様式1.Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues 様式B.Range("B16:W2000").Copy 様式2.Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues Application.CutCopyMode = False 様式1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 様式2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 様式A.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 様式B.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True .Close SaveChanges:=True End With MsgBox "『マクロブック』へ" & vbCrLf & "データ転送しました。" End Sub この様なマクロを組んでみましたが、転送ボタンを押した際転送先の『様式1』『様式2』シート共に保護がかかったままデータがされるものの最初のデータ(5/1)から当日分(5/4)全てが張り付けられてしまいます。 【翌日5/4】 翌日5/4】 『Aシート』 日付  名前   時刻  データ   … 5/1   田中  7:30  534986 5/2   太田  13:00  691324 5/3 鈴木  14:00 143985 5/4   佐藤 8:30  068912 ↓[転送ボタン] 『1シート』 日付  名前   時刻  データ   … 5/1   田中  7:30  534986 5/2   太田  13:00  691324 5/3 鈴木  14:00 143985 5/1   田中  7:30  534986 5/2   太田  13:00  691324 5/3 鈴木  14:00 143985 5/4   佐藤 8:30  068912 ポイントとしましては以下の通りです。 (1)『様式A,B』のシートは『様式1,2』へそれぞれ転送。 (2)毎日データ転送し、『様式1,2』へは下の行へその都度入る。 (3)『様式A,B』及び『様式1,2』は入力箇所以外は保護が掛けられ、データ転送後も保護が掛けられた状態のまま保存。 (4)日付データは重複しない。 どの様に修正すれば良いのでしょうか? よろしくお願いします。

  • エクセル マクロの質問です

    エクセル マクロの質問です こんにちは エクセルのマクロでセルをロックをしたところ、なぞの現象が起こったので、原因を教えていただきたく質問に来ました。 なぞの現象 セルA3、A4、A5のみ保護のチェックをはずし、マクロ↓ sub tes() (1)ActiveSheet.Unprotect 'マクロが色々入ります。 '何が問題なのかがわからないです。 '(1)(2)は固定で、一番最初と一番最後に入れています。 (2)ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True end sub を実行しました。 すると、通常はA3,A4、A5をシングルクリックで選択できたのが、選択できなくなりました。(ダブルクリックで編集状態にはできます) 同じくマクロを実行した後、通常ならばA3をダブルクリックで編集状態にし、文字を打ち込み⇒エンター⇒エンターでA4に移動するところですがどうしても移動しません。 ちなみに上のマクロではちゃんと移動できました。 中に入るマクロによって、このような状況になることがあるのでしょうか? それとも他に何か原因があるのでしょうか? わかる方や、似たような状況になった方がおりましたら是非解決方法や、アドバイスをお願いいたします。

  • シートの保護につきまして

    行・列の追加削除だけ、無効にする方法は ありますか? 単にシートを保護するだけなら下記で行っております。 ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True ご回答のほど、よろしくお願いいたします。

  • エクセルでマクロを組み始めたばかりの者です。下記の

    エクセルでマクロを組み始めたばかりの者です。下記のようなマクロを組んでみましたが、27行目もしくは41行目のActiveSheet.Pasteで「実行時エラー‘1004‘: 変更しようとしているセルまたはグラフは保護されているため読み取り専用となっています…」というエラーメッセージが出て止まってしまいます。 しようとしている内容は、転送ボタンを押し各シートの指定セルへ一括転送(コピー)をしたいのです。 その際、転送先はシート保護をしておきたいのです。 エラーはエクセル2010で確認しましたが、職場のPCを使用するため2007や2003等他のバージョンを利用する可能性もあります。また、仕事で使用するため早急に使わなければならず焦っています。 Option Explicit Private Sub CommandButton2_Click() Call Macro2 End Sub Sub Macro2() Workbook.Open Filename:=”K:¥共有¥○○○.xlsm” ActiveSheet.Unprotect ThisWorkbook.Activate Range(”D4:G20”).Select Selection.Copy Windows(”○○○.xlsm”).Activate Range(”E7”).Select ActiveSheet.Paste Application.CutCopyMode = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveWorkbook.Save ActiveWindow.Close Application.CutCopyMode = False Workbook.Open Filename:=”C:¥Users¥Desktop¥×××.xlsm” ActiveSheet.Unprotect ThisWorkbook.Activate Range(”D4:G20”).Select Selection.Copy Windows(”×××.xlsm”).Activate Sheet(”△△△”).Select Range(”AF18:AI34”).Select ActiveSheet.Paste Application.CutCopyMode = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveWorkbook.Save ActiveWindow.Close Application.CutCopyMode = False Workbook.Open Filename:=”K:¥共有¥□□□.xlsm” ActiveSheet.Unprotect ThisWorkbook.Activate Range(”D4:G20”).Select Selection.Copy Windows(”□□□.xlsm”).Activate Sheet(”▽▽▽”).Select Range(”AF18:AI34”).Select ActiveSheet.Paste Application.CutCopyMode = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveWorkbook.Save ActiveWindow.Close Application.CutCopyMode = False MsgBox " 『○○○』と" & vbCrLf & "『×××』と" & vbCrLf & "『□□□』の" & vbCrLf & "規格を変更しました。" End Sub どの様に修正すれば良いのでしょうか? マクロが原因でしょうか?または他の原因があるのでしょうか? マクロ初心者のため、修正方法など具体的な詳細をお教えいただけないでしょうか。 お手数をおかけして申し訳ございませんが、よろしくお願いします。

  • エクセル マクロ picture

    教えてもらいながら以下のような画像貼り付けマクロを組んだのですが,以下の点に引っかかり前進することができません. 教えて頂きたいと思い投稿しました. 躓いている点  シート内でボタンを利用して貼り付け及び削除をしているのですが,エクセルシート内でコピペするたびに「Selection.Name」と貼り付け先を修正しています. →これをコピペしても修正をしなくてもよいマクロはないでしょうか? 自作作成マクロ Sub 写真貼付1_Click() Dim AA As String, BB As String, CC As String 10 AA = InputBox("参照先を指定して下さい。例:D:\Photo001.jpg", "場所指定", AA) If (AA = "") Then AA = Application.GetOpenFilename(Title:="写真ファイルの場所はどこですか?") GoTo 10 End If ActiveSheet.Unprotect Range("m29").Select ActiveSheet.Pictures.Insert(AA).Select Selection.Name = "写真1" Selection.ShapeRange.LockAspectRatio = msoTrue Selection.ShapeRange.Height = 310 Selection.ShapeRange.Width = 310# Selection.ShapeRange.IncrementLeft 1 Selection.ShapeRange.IncrementTop 1 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingCells:=True End Sub -------------------------------------------------- Sub 写真削除1_Click() ActiveSheet.Shapes("写真1").Select Selection.Delete ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingCells:=True End Sub ところどころ端折ってますが,以上のようなマクロです. よろしくお願いします.

  • シートの保護について

    特定のセル("C3:I3")を編集不可にしたいのですが、 下記プログラムにするとすべてのセル(シート)が保護されてしまいます。 どこがおかしいのでしょうか。 Private Sub CommandButton1_Click() ActiveSheet.Unprotect ・・・・・・・・・・ Range("C3:I3").Locked = True ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub

  • エクセルのマクロの手直し

    お世話になります。 エクセルのマクロに教えてください。 (1)シートの保護を解除 (2)E42~H42までを選択し[コピー] (3)E18をクリックして[形式名を選択して貼り付け](その中の値のみ) (4)E42~H42までを選択し[数式と値のクリア] (5)シートの保護 → OK ここで (3)のE18というセルの所を E列で、行番号は I42 のセルに7を足した数字 というようにしたい。(I42の値が15だったらE22という具合)ちなみに I42 のセルは条件により変化し0以上35以下の整数が入る。 以下は(1)から(5)の作業をマクロの新規作成で「マクロ」という名前で記録したものです。 どの部分を修正すればいいのか教えてください。 Sub マクロ() ' ' マクロ Macro ' マクロ記録日 : 2002/5/27 ユーザー名 : ' ' ActiveSheet.Unprotect Range("E42:H42").Select Selection.Copy ActiveWindow.ScrollRow = 10 Range("E18").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=6 Application.CutCopyMode = False Range("E42:H42").Select Selection.ClearContents Range("I37").Select ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub

  • エクセル2000でのVBAについて

    下記のVBAを書いているのですが、3つのIF文を1つに まとめたいのですが教えてください。 If Range("E16") = "申請者" Then Sheets("ログイン").Select Sheets("報告票").Select ActiveSheet.Unprotect Range("M3:U7").Select Selection.Locked = False Selection.FormulaHidden = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True '数式バー表示 Application.DisplayFormulaBar = True Range("H9").Select Else: Sheets("ログイン").Select If Range("E16") = "所属長承認" Then Sheets("報告票").Select ActiveSheet.Unprotect Range("D3:L7").Select Selection.Locked = False Selection.FormulaHidden = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True '数式バー表示 Application.DisplayFormulaBar = True Range("H9").Select Else: Sheets("ログイン").Select If Range("F16") = "所属長承認" Then Sheets("報告票").Select ActiveSheet.Unprotect Range("BS3:CA7").Select Selection.Locked = False Selection.FormulaHidden = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True '数式バー表示 Application.DisplayFormulaBar = True Range("H9").Select Else: Sheets("ログイン").Select end if end if end if