• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロの作業中のブレを無くしたい。)

マクロの作業中のブレを無くす方法とは?

このQ&Aのポイント
  • マクロを使用して勤怠表の時間記入部分のデータを自動登録したいが、Application.ScreenUpdating = Falseの記述場所が分からない。
  • また、マクロを簡素化したいが、自動入力したマクロの式を貼り付けられない問題にも直面している。
  • シート名はSheet1からSheet54まであり、それぞれのシートでセルC14、D14、E14、E12、C16:E46を削除したい。

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

  • ベストアンサー
  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

Application.ScreenUpdating = Falseは一番最初か 一番最初のsheets().select、Range().selectなどの動きのある記述の前 最後にApplication.ScreenUpdating = True を記述しておけばよいと思います。 下記のマクロはシートを選択するsheet().select 記述をしていないので動きはありません。 Application.ScreenUpdating = Falseは必要ないです。 Sub Macro1() For i = 1 To Sheets.Count Sheets(i).Range("C14:E14,E12,C16:E46").ClearContents Next i End Sub 自動で入れたマクロの式を張り付ける事ができませんでした。(文字数オーバー) はどうしたいのかわかりませんでした。

07535373
質問者

お礼

ありがとうございました。 こんなに短い式で 出来るのですね。  自動で入れたマクロ 張り付けできませんでしたは・・・スミマセン わかりにくいですよね~ 私はマクロ自動登録しかできず、 その内容を質問に張り付けようとしたのですが、 文字の数か多くて質問に張り付けできませんでした。 その意味でした。 しかし こんなに短い物で動くとは、ビックリです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

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

新しいマクロの記録を開始する シート名タブの所を右クリックして全てのシートを選択を選ぶ セルをクリックしてDeleteする またはセルをCtrl+連続クリックして飛び飛び選びDeleteする C14セルを(または最初のセル,実際にやってみて良いセルを)選ぶ シート名タブを右クリックして作業グループ解除する マクロの記録を終了する などでも良いと思います。 勿論手書きで詳しいプログラムが書ければ,それに越したことは無いですけどね。

07535373
質問者

お礼

ありがとうございます。 もともと 同じ方法でマクロ登録したのですが、 画面がぶれるのが気になりまして・・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マクロを書き変えたいのですが、

    マクロを書き変えたいのですが、 現在使用してる 下記のマクロがあるのですが、 このマクロに Sheet1~Sheet18までの セル E12・E14・F14データーを消す式を足したいのですが、 どのように書いたらよいでしょうか? Sub 打ち出しデーター削除() ' ' 打ち出しデーター削除 Macro ' 打ち出しシートの時間・判定を クリアーにする。 ' ' Sheets("打 ち 込  用 ").Select Application.ScreenUpdating = False Selection.SpecialCells(xlCellTypeConstants, 1).Select Selection.ClearContents Sheets("★スタッフ一覧").Select Range("A1").Select End Sub あと シート数を指定しない場合も知りたいのです。 どなたか 力を貸してください。

  • エクセルでタイムカードを入力しての勤怠管理 関数&マクロ 

    本を購入して読んでみたのですが、よくわからなかったので教えて下さい。 定時は9:00-18:00です。  1.次の場合どのような関数をいれればいいでしょうか?   出勤時間(C6)を 退出時間(E6)へ入力    7:00に出社しても9:00からしかカウントしません。   9:05までなら遅刻とせず、9:00出社としてカウント 9:05を過ぎると30分単位で時間をカウント(9:06出勤なら9:30から) 2.パートさんが曜日によって勤務時間が変わります。その場合どのよう   に関数をいれればいいでしょうか?   月・水・金 9:00-18:00    火・木 8:00-17:00    曜日によって1.の質問の9:00からのカウントを、8:00からのカウント   というような選択をしたい場合 3.次の場合のマクロをどのように作成すればいいでしょう。   (今回はじめてマクロに挑戦します。そもそも根本的な考え方が    おかしいかもしれません。ご指導よろしくお願いします。)     1名(タイムカード1枚)で1シート 社員30名の1カ月分を    1ファイルで管理しようと思います。   A.マクロ用のシートにタイムカードの管理期間、たとえば11/1-30すると     以下が自動的に入力されるマクロ    ・全社員の勤怠表の日付(A6):(A35)まで自動的に日付が入力(A36)     は空欄表示    ・全社員の勤怠表の曜日(B6):(B35)まで自動的に日付が入力(B36)     は空欄表示   B.マクロ用のシートにあるクリアボタンを押すと以下がデータクリアされる     マクロ     ・全社員の勤怠表の出勤時間(C6):(C36)と退社時間(E6):(E36)が 自動的にデータ削除される。 質問が分かりづらいとは思いますがよろしくお願いします。

  • エクセルマクロ 教えてください

    エクセルの自動記録でマクロを取り組み始めたばかりの初心者です。 本部から毎月送られてくるエクセルファイルにこちらで別のワークブックに記録したマクロを使って加工しようとしていますが方法がわかりません。 他の人がこのファイルを間単に加工出来るようマクロを使って (マクロのコードの書き換え等の作業をしないで)行えるようにしようとしています。 ※送られれくるエクセルファイルは月毎にファイル名が違います(シート名は変わりません)。 下記は自動記録の内容ですがこれを適用させる方法であります。 宜しくお願いいたします。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/9/8 ユーザー名 : ******* ' ' ActiveWindow.TabRatio = 0.819 Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select Sheets("Sheet1").Activate With ActiveWindow .DisplayHeadings = False .DisplayHorizontalScrollBar = False .DisplayVerticalScrollBar = False End With Sheets(Array("Sheet6", "Sheet7", "Sheet1", "Sheet2")).Select Sheets("Sheet1").Activate ActiveWindow.Zoom = 120 End Sub

  • 作業グループで空白行の非表示マクロ

    1~40までのシート全てのB7:B36の範囲に空白があれば非表示にするというマクロを作ろうとしています。 Sheets(Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", _ "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", _ "39", "40")).Select Replace:=False Dim rw As Integer Application.ScreenUpdating = False For rw = 7 To 36 If Range("B" & rw) = "" Then Rows(rw).EntireRow.Hidden = True End If Next Application.ScreenUpdating = True というマクロだと、1のシートしか適用しませんでした。1~40のすべてにこのマクロを適用させるにはどうすればいいのでしょうか。教えて下さい。

  • Excelマクロ教えてください。

    いつも大変お世話になっております。 あるシートにあるフォントのすべてをMSゴシックにしたいのですが、 マクロ記録→全選択してフォント変更→記録解除 で下記のマクロができました。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2007/11/21 ユーザー名 : TEST ' ' Cells.Select With Selection.font .Name = "MS ゴシック" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With End Sub 全選択せずに、あるシートすべてのフォントを変更する方法はありますか? シートのフォントを変更するだけの目的です。 よろしくお願いします。

  • エクセル97でマクロを使って、シート間の編集作業をしたい。

    エクセル97を使って、データの編集をしたいのですが、 オートフィルタで抽出したものを他のシートに貼りつけるマクロなんていうのは 出来ないのでしょうか? 一応試しにやってみたところ、 Sub ○○コピペ() ' ' ○○コピペ Macro ' マクロ記録日 : 2003/2/  ユーザー名 : ' ' Selection.AutoFilter Field:=3, Criteria1:="=**○○**", Operator:=xlAnd Range("A11:I3100").Select Selection.Copy Sheets("○○").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("E2").Select End Sub と、このようになりました。 これでは、当然使い物になりません(汗) アクセスのクエリをインポートしてきたものを、 それぞれのシートに振り分ける(12シート分)という作業です。 マクロにしたいのは、 オートフィルのオプションを使って抽出 コピー&指定のシートの指定のセル(E2)からペースト です。 最終的にボタンにしてツールバーに常駐させるのですが、ボタンはシート数と同じ12個 作るつもりです。 (もちろん1個ですめば尚理想的なのですが) 指導の程、宜しくお願いいたします。

  • Excelのイベントマクロ

    Private Sub Worksheet_Activate()に関する質問です。 ワークシート1と2があるとします。 ワークシート1は普通のデータが記されており、それのソートを実行するマクロをMacro1、そのデータから重複したものを外してソートするマクロをMacro2とし、Macro1から呼び出してます。 今、シート2を開いたときは必ず、シート1でMacro1を実行するようにしたいのですが、以下のように記述すると、無限ループになってしまいうまくいきません。 どなたか、方法をお教えください。 Sheet2に記載したイベントマクロ Private Sub Worksheet_Activate() Sheets("Sheet1").Select Macro1 Sheets("Sheet2").Select End Sub 標準モジュールに記載したマクロ Sub Macro1() Dim team As Integer ActiveSheet.Unprotect ("pass") Range("A3:c18").Select Selection.Sort Key1:=Range("c3"), Order1:=xlAscending, Key2:=Range("A3") ,Order2:=xlAscending, Header:=xlNo,OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal team = Range("b1").Value ActiveSheet.PageSetup.PrintArea = "$A$3:$c$" + CStr(team + 2) Macro2 Range("A1").Select ActiveSheet.Protect ("pass") End Sub Sub Macro2() Range("i3:j18").ClearContents Range("i3").Select Selection.Consolidate Sources:="R3C6:R18C7", Function:=xlMax, TopRow:=False,LeftColumn:=True, CreateLinks:=False Range("i3:k18").Select Selection.Sort Key1:=Range("k3"), Order1:=xlAscending, Header:=xlNo,OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal Range("j3:j18").Select Selection.NumberFormatLocal = "0_);[赤](0)" End Sub

  • Excel2003 シートに入力されているマクロ

    以前勤めていた方が作成したExcelのファイル内にマクロが使われています。 編集したいのですが、作成者には連絡がとれず大変困っています。 どういうものかというと ブック「あああ」内のsheet「コントロール」にマクロが登録されたフォームが並んでいる。 ボタンを押すと同じブック内のsheet「Macro」に入力されているプログラムが実行される。 自分で作成するときは自動マクロでマクロを作成してから、 標準モジュールを編集して使用している程度の知識しかないので シートを使ったマクロがよくわかりません。 フォームのVBエディタを開いてみても入力はされていません。 命令文はセルに直接入力されています。 調べようにも何を調べればいいのかよくわからず、 せめてそれだけでもわかればと思い質問させて頂きました。 命令文はたくさん入力されており、どこをどう使っているのかもよくわからないので役に立たないかも知れませんが 参考までに載せておきます。 PrintMacro Print_I =ECHO(FALSE) =MoveHajime4() =PRINT(1,,,1,FALSE,FALSE,1) PrintThis =PRINT(1,,,1,FALSE,FALSE,1) =RETURN() Printあいう =MoveDemandForm() =SELECT("Print_あいう") =SET.PRINT.AREA() =PrintThis() =BackToCP() =RETURN() -------------------------- WorkBookAvtivate Macro BackToCP =ECHO(FALSE) =WORKBOOK.SELECT("[あああ.xls]コントロールシート","[あああ.xls]コントロールシート") =ECHO(TRUE) =RETURN() MoveHajime4 =ECHO(FALSE) =WORKBOOK.SELECT("[あああ.xls]HAJIME4.XLS","[あああ.xls]HAJIME4.XLS") =SELECT("R3C1") =ECHO(TRUE) =RETURN()

  • マクロの自動記録について

    Sub Macro1() 'Macro1 Macro 'Keyboard Shortcut:Ctrl+a Application.Run"ATPVBAEN.XLA!Sample",Worksheets("sheet1").Range("$A$2:$AD$31"),ActiveCell,"R",10,False ActiveCell.Offset(0,1).Select End Sub  これは、マクロの自動記録を用いて、『ツール>分析ツール>サンプリング』の動作を自動的に生成されたマクロ(プログラム)を書き直したものです。  このマクロを実行しようとすると、『実行時エラー'1004':'ATPVBAEN.XLA'が見つかりません。ファイル名およびファイルの保存場所が正しいか確認してください。』と出て、マクロが実行できません。どうすればよいでしょうか?

  • Excelで、既に作成してある月別Sheetを呼び出すマクロを作りたい

    Excelで、既に作成してある月別Sheetを呼び出すマクロを作りたいのですが教えて下さい。 2ヶ月に1回のゴルフ会の成績表を作成するのに、 1月成績、1月転記、3月成績、3月転記というように12のSheetが作ってあります。 当該月分の入力準備表を(Sheet 7月成績)に2ヶ月前の(Sheet 5月転記)のSheetを丸ごとマクロでコピーをしたいのです。  この7月と入力したら、(7月成績)のSheetを呼び出し、コピー元のSheet(5月転記)をマクロに記入出来るように設定したいのです。 例えば、   1(月)と入力したら、    11月転記Sheetから自動コピーの指定        3(月)と入力したら、     1月転記Sheetから自動コピーの指定        7(月)と入力したら、     5月転記Sheetから自動コピーの指定     年間6回の作業となります。 初心者の私が、自動記録でマクロを記入したところ、下記のようになり、同じ作業をするのに各月ごとのマクロ6本を作る必要があり、不便なので何とか1つのマクロで処理が出来ればと思い、その方法を教えて頂ければ幸いです。    Sub Macro1() ' 入力準備表作成 ' Macro1 Macro ' ' Keyboard Shortcut: Ctrl+a ' Sheets("5月転記").Select  ← 7月と入力した場合、自動的に5月転記となるように  Cells.Select Selection.Copy Sheets("7月成績").Select Cells.Select ActiveSheet.Paste Range("E5:F5").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False   ・・・・・・

専門家に質問してみよう