エクセルのマクロが無効になる問題について

このQ&Aのポイント
  • エクセル2013で作成したマクロが起動後に「このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。」と表示される問題が発生しています。
  • コンテンツの有効化やマクロのセキュリティ設定の変更を試しても解決しない状況です。
  • また、selfcert.exeが不足しているためデジタル署名を行うこともできません。どなたか解決策を教えてください!
回答を見る
  • ベストアンサー

誰か助けてください!マクロが無効にされます、、

先日エクセル2013で sub Macro1()  range("E65536").end(xlup).offset(1).resize(1, 4).value = range("A1:D1").value  if range("E65536").end(xlup).row > 30 then ’31行に到達してから1行目を削除する   range("E1:H1").delete shift:=xlshiftup  end if  application.ontime now + timeserial(1, 0, 0), "Macro1" end sub というマクロを作ってもらいました。 しかしいざ動かそうとすると最初のマクロが起動したあと必ず「このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。」とでます。 コンテンツを有効化してもマクロのセキュリティをすべてのマクロを有効にしてもだめです。 デジタル署名しようにもアマゾンでネットでエクセルのみ購入したためかselfcert.exeがありません。 全く原因と解決方法が分かりません!誰か助けてください!

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

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

>最初のマクロが起動したあと必ず マクロを書く場所を間違えている事が考えられます。 正しい手順: 先に登録したマクロは消去する 改めてALT+F11でVBE画面を開く 挿入メニューから標準モジュールを挿入する 現れたシートにマクロをコピー貼り付ける 実行する。

perrault
質問者

お礼

有難うございます!うまく動き出しました! keithinさんにはなんとお礼を言ったいいのか分からない位感謝です! 本当に助かりました! ありがとうございました!

関連するQ&A

  • 2つのマクロをうまく動かすにはどうしたら?

    以下の2つのマクロを同時に動かそうとしています マクロ2はマクロ1で出した数字から始めの値段と終わりの値段と高安4つをエクセル関数で抽出して 出した4つの数字を24個蓄積することをめざしてます。 それぞれは1つで起動させるとうまく動くのですが 同時に動かすとマクロ1は4つずつ記録を始めたりと思い通りに動きません。 これを解決するにはどうしたらいいでしょうか? Sub Macro1() Range("E65536").End(xlUp).Offset(1).Resize(1, 4).Value = Range("A2:D2").Value If Range("E65536").End(xlUp).Row > 30 Then '31行に到達してから1行目を削除する Range("E1:H30").Delete shift:=xlShiftUp End If Application.OnTime Application.Floor(Now, TimeSerial(0, 1, 0)) + TimeSerial(0, 1, 0), "Macro1" End Sub Sub Macro2() Range("I65536").End(xlUp).Offset(1).Resize(1, 4).Value = Range("A5:D5").Value If Range("I65536").End(xlUp).Row > 24 Then '25行に到達してから1行目を削除する Range("I1:L1").Delete shift:=xlShiftUp End If Application.OnTime Application.Floor(Now, TimeSerial(0, 30, 0)) + TimeSerial(0, 30, 0), "Macro2" End Sub 追加としてマクロ1は30分もしくは00分(9時00分、9時30分、10時11時も同様)に記録を始めて 9時1分や31分には一旦削除最初から記録を蓄積するということを目指してます。 つまり10時10分からマクロを動かすと10時31分になると一旦削除して最初から始めるとうものです。 こちらも可能ならお願いします!

  • VBAの答えを求めています

    素人です。誰か教えてください。 下記マクロのend ifより下の部分で時計単位で30分と00分に起動させるように したいのですが起動させるとマクロが常時計算を続けてしまいパンクしてしまします。 sub Macro1()  range("E65536").end(xlup).offset(1).resize(1, 4).value = range("A1:D1").value  if range("E65536").end(xlup).row > 30 then ’31行に到達してから1行目を削除する   range("E1:H1").delete shift:=xlshiftup  end if  application.ontime application.floor(now, timeserial(0, 30, 0)) + timeserial(0, 30, 0), end sub どうしたら解消できるでしょうか!?

  • 時計による一定時間ごとに起動させるには

    素人です。誰か教えてください。 sub Macro1()  range("E65536").end(xlup).offset(1).resize(1, 4).value = range("A1:D1").value  if range("E65536").end(xlup).row > 30 then ’31行に到達してから1行目を削除する   range("E1:H1").delete shift:=xlshiftup  end if  application.ontime now + timeserial(0, 30, 0), "Macro1" end sub というマクロなのですが これを時計により00分と30分(例えば10時、10時半、11時、11時半、、、) というふうに起動させるにはどうしたらいいでしょうか?

  • マクロで分岐をさせる方法

    下記の記録マクロでWith→End With 間にIFで分岐を試みたのですが エラーになります。どうすれば出来るのか伝授をお願いします。 マクロは初心者です。 Dim hensuh(2) As Integer Dim dekiru As Long Dim kinek As Long Dim uineu As Long Dim myTime As Date Dim flg As Boolean Sub OnTimeSamp1() Application.OnTime EarliestTime:=TimeValue("09:00:00"), Procedure:="Ontime_Set" '記録開始 Application.OnTime EarliestTime:=TimeValue("11:00:00"), Procedure:="Ontime_Reset" '記録終了 End Sub Sub Ontime_Set() 'トグルになっている If flg = False Then flg = True myTime = Now + TimeSerial(0, 0, 1) ElseIf flg = True Then flg = False Else Exit Sub End If If Range("A1").Value = "" Then Range("A1").Value = Format(Now, "hh:mm:ss") '時間記録(スタート) End If Application.OnTime EarliestTime:=myTime, _ Procedure:="my_Procedure", Schedule:=flg If flg = False Then myTime = 0 End If End Sub Sub my_Procedure() Worksheets("kirokuyou").Activate 'ワークシートをアクティブにする。(記録中別のワークシートを開けた場合そこに記録されてしまうのを防ぐ) With Range("A65536").End(xlUp).Offset(1) .Value = Format(Now, "yyyy:mm:dd:hh:mm:ss") '時間記録 .Offset(, 1).Value = Range("S3").Value 'S3 の値 .Offset(, 2).Value = Range("T3").Value 'T3 の値 .Offset(, 3).Value = Range("U3").Value 'U3 の値 .Offset(, 4).Value = Range("V3").Value 'V3 の値 dekiru = Range("V3").Value Range("V6").Value = dekiru kinek = Range("T22").Value Range("T18").Value = kinek uineu = Range("U22").Value Range("U18").Value = uineu 'IF S17 >= 120 Then 'hensuh(0) = Range("S17").Value ←変数に代入後、分岐させたいのですがエラーになる 'Elseif S17 >= 110 Then 'hensuh(1) = Range("S17").Value ←変数に代入後、分岐させたいのですがエラーになる 'Elseif S17 >= 100 Then 'hensuh(2) = Range("S17").Value ←変数に代入後、分岐させたいのですがエラーになる 'End If flg = False myTime = 0 End With Call Ontime_Set End Sub Sub Ontime_Reset() 'タイマーリセット On Error Resume Next Application.OnTime EarliestTime:=myTime, _ Procedure:="my_Procedure", Schedule:=False If Err.Number > 0 Then MsgBox "OnTime設定はされていません。", 64 Err.Clear flg = False Else MsgBox myTime & "の設定は解除されました。", 64 flg = False myTime = Empty End If End Sub

  • 空白行を削除するマクロ

    空白行を削除するマクロについて質問です。 「Aが空白の場合」ではなく「A~Lセルすべてが空白の場合」に行を削除したいです。 下記のマクロでは、Aが空白の場合に行がすべて削除されてしまいます。 Aが空白でも、BやLに数字や文字があれば、その行は残るようにしたいです。 このマクロをどう変化させれば、うまく作業が実行されますか? マクロは初心者です。よろしくお願いいたします。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ sub macro1()  dim s as long  dim e as long  dim r as long  s = 5  e = range("A65536").end(xlup).row  for r = e to s step -1   if application.trim(cells(r, "A")) = "" then    cells(r, "A").entirerow.delete shift:=xlshiftup   end if  next r end sub

  • excel マクロ

    EXCELでデータが100行の表があるとする。 データのない行を削除し行を詰めるマクロは? イメージはこんな感じとおもうのでうが Sub Macro1() 'if文であるn行がデータがないかどうか判定YESなら Rows("n:n").Select Selection.Delete Shift:=xlUp End Sub

  • マクロについて

    マクロでデータをクリアするコマンドボタンを作りました。でも、計算の答えがでなくなりました。 例えば、 A1:A10までの情報はクリアになります。 答えの“=SUM(A1:A10)”というCセルだけが前の情報のままになります。(Cセルはマクロに登録していません。) 全くのど素人で、マクロの登録も他の書類からコピーしてセルだけ変えました。 マクロの内容は、下記の通りです。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 ' Sub allclear() Application.Calculation = xlManual Range("D4").Value = "" Range("B6").Value = "" Range("B8").Value = "" Range("E11").Value = "" Range("E12").Value = "" Range("F11").Value = "" Range("B21").Value = "" Range("B23").Value = "" Range("B25").Value = "" Range("B27").Value = "" Range("B29").Value = "" Range("P5:P9").Value = "" Range("Q5:Q9").Value = "" Range("P15:P19").Value = "" Range("Q15:Q19").Value = "" End Sub よろしくおねがいします。(_ _)

  • 重複行を完全削除するエクセルのマクロ

    Sub sakujyo() Dim i, ii As Long For i = 1 To Range("a65336").End(xlUp).Row For ii = Range("a65336").End(xlUp).Row To i + 1 Step -1 If Cells(i, 4).Value = Cells(ii, 4).Value _ And Cells(i, 13).Value = Cells(ii, 13).Value Then Delete Shift:=xlUp End If Next ii Next i End Sub マクロに関しては、素人でございます。 こちらのマクロを作ってみたのですがうまくいきません。 4列目と13列目の列が重複したときのみ重複した行をすべて削除させたいと思っております。どうぞお教えください。

  • エクセルシートの順繰り表示マクロについて

    エクセルにて随時更新されるデータを全画面表示し、3枚のシートを5秒置きに順繰り表示させるようマクロを組みました。始めは順調なのですが、数時間たつとフリーズしてしまいます。そもそもエンドレスのマクロプログラム実行に無理があるのでしょうか。 または下記のプログラムに問題があるのでしょうか。ご教授お願いします。 Sub Macro1() Sheets("Sheet2").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro2" End Sub Sub Macro2() Sheets("Sheet3").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro3" End Sub Sub Macro3() Sheets("Sheet1").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro1" End Sub

  • マクロ実行が遅い・・・

    皆さんにおしえてもらいながら下記のようなマクロを組みました。 しかし、マクロを実行すると計算中が長いのです。 もしこのマクロに原因があれば教えてください。 よろしくお願いします。 -------------------------- Sub 見積書作成() Sheets("見積書").Select '見積書シートを選択 For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1 If Cells(i, 5).Value = "0" Then '工数が「0」のときは Rows(i).RowHeight = 0 '行高さ「0」 End If Next For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1 Range("E8:E55") = Application.Round(Range("E8:E55"), 0) '工数を四捨五入 Next Dim Rng As Range Const Retu = "C" '<--- ここで「小計」の列を指定します。 For Each Rng In Range(Retu & "1", Range(Retu & "65536").End(xlUp)) If Trim(Rng.Value) = "小   計" And _ Rng.Offset(, 6) = 0 Then Rng.EntireRow.Hidden = True End If Next Rng End Sub

専門家に質問してみよう