• ベストアンサー

このブックでマクロが使用できないか、またはすべての

このマクロをsubプロシージャから実行しました。問題なく実行デッキました。しかしマクロを登録したボタンからは実行できず、なぜかこのエラー文が出てしまいました。 Sub 日付の非表示、表示() Set f1 = Sheets(1) Set h1 = Sheets(2) Set f2 = Sheets(3) Dim d1 As Date, dday As Date d1 = f1.[AG3].Value d2 = Day(d1) f1.[A:AG].EntireColumn.Hidden = False f2.[A:AG].EntireColumn.Hidden = False h1.[A:AG].EntireColumn.Hidden = False Select Case d2 Case Is = 15 MsgBox "非表示にする行はありませんでした。" Case Is = 16 f1.[AG:AG].EntireColumn.Hidden = True f2.[AG:AG].EntireColumn.Hidden = True h1.[AG:AG].EntireColumn.Hidden = True Case Is = 17 f1.[AF:AG].EntireColumn.Hidden = True f2.[AF:AG].EntireColumn.Hidden = True h1.[AF:AG].EntireColumn.Hidden = True Case Is = 18 f1.[AE:AG].EntireColumn.Hidden = True f2.[AE:AG].EntireColumn.Hidden = True h1.[AE:AG].EntireColumn.Hidden = True End Select End Sub 他の場所にこんなマクロを作りボタンから実行したのですが問題なく実行出来ました。 Sub デバッグ() [AK7].Value = 11 End Sub 原因は何でしょうか?

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

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (740/5646)
回答No.1

「日付の非表示、表示」の「、」に問題があるようです。 なくしてマクロを登録しなおすとエラーは解消されました。

terabayahi1988
質問者

お礼

回答ありがとうございます。解決しました。初耳でした。

関連するQ&A

  • エクセル VBA 表示範囲の簡素化

    よろしくお願いします。 下記構文の簡素化ができないでしょうか。 CommandButtonが30個ほどあります。 ーーーーーーーーーー Private Sub CommandButton1_Click() Dim rng As Range Application.Goto Sheets("基本台紙").Range("A1") Set rng = Range("A1:D7") Rows.Hidden = True rng.EntireRow.Hidden = False Columns.Hidden = True rng.EntireColumn.Hidden = False rng(1).Select Unload Me UserForm1.Show vbModeless End Sub ーーーーーーーーーー Private Sub CommandButton2_Click() Dim rng As Range Application.Goto Sheets("基本台紙").Range("A1") Set rng = Range("A8:B21") Rows.Hidden = True rng.EntireRow.Hidden = False Columns.Hidden = True rng.EntireColumn.Hidden = False rng(1).Select Unload Me UserForm1.Show vbModeless End Sub ーーーーーーーーーー Private Sub CommandButton3_Click() Dim rng As Range Application.Goto Sheets("基本台紙").Range("A1") Set rng = Range("C8:D21") Rows.Hidden = True rng.EntireRow.Hidden = False Columns.Hidden = True rng.EntireColumn.Hidden = False rng(1).Select Unload Me UserForm1.Show vbModeless End Sub

  • エクセルシート:ボタン押下で特定列の表示←→非表示切り替え

    (行いたいこと) sheet1の中にコマンドボタン1があって、そのボタンが押されたとき既にC列からF列が非表示のときは表示してやり、また逆に表示のときは非表示にする。 (macroを作って実行したい) (現在の考えている状況) 後どうすればいいですか。今は何も動作しません。 今macro3というマクロの中に次のようなものが入っています。 Private Sub CommandButton1_Click() If Selection.EntireColumn.Hidden = True Then Columns("B:G").Select Range("G1").Activate Selection.EntireColumn.Hidden = False Else: Columns("C:F").Select Selection.EntireColumn.Hidden = True End Sub Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2006/3/24 ユーザー名 : ' Columns("C:F").Select Selection.EntireColumn.Hidden = True Columns("B:G").Select Range("G1").Activate Selection.EntireColumn.Hidden = False Range("B2").Select End Sub

  • 【Excel】 マクロが止まってしまいます。

    こんにちは。 マクロを記録し、その内容をA1セルをダブルクリックで実行するようにしたいと思います。 記録したマクロを、[ツール]から実行すると、正常に再生されましたが、以下のようにダブルクリックで実行するようにすると、 「Columns("C:N").Select」のところで止まってしまいます。 どのように書くと良いのか教えてください。 -------------------------------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address <> "$A$1" Then Exit Sub Cancel = True Columns("A:U").Select Selection.Copy Sheets("一覧").Select Range("A1").Select Sheets("一覧").Select Sheets.Add ActiveSheet.Paste Columns("C:N").Select Application.CutCopyMode = False Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.EntireColumn.Hidden = True Range("O4").Select End Sub --------------------------------------------------------

  • マクロについて

    Sub FormShow() Qry.Show Private Sub CommandButton1_Click() Sheets("A").Select Sheets("B").Select Replace:=False Sheets("C").Select Replace:=False ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("Help").Select Sheets("A").Select End Sub のマクロが登録された「ボタン(フォームコントロール)」により実行した後に、 Bシート内のA1セルの中に"・"を検索し、 もし"・"があった場合は"WWW()"のマクロを実行、 "・"がなかった場合は"XXX()"のマクロを実行する。 これが中々上手くいかず困っております。 ご教授いただければ幸いです。

  • 【Excel365マクロ】時間短縮方法

    下記は「行9~170のH列が空白ならば非表示にする」というマクロです。 ---------------------- Sub 空白行非表示() Sheets("シート1").Select Application.ScreenUpdating = False For rw = 9 To 170 If Range("H" & rw) = "" Then Rows(rw).EntireRow.Hidden = True End If Next Application.ScreenUpdating = True Columns("E:E").EntireColumn.Hidden = True Range("B2").Select End Sub ---------------------- 同様のマクロを多用していますが、行数が多いファイルは開始数秒後に「応答なし」が表示され、終わるのに1分近く時間がかかることが多く困っております。 行数が10行程度のファイルは数秒~10数秒程度で終わることもありますが、同じく1分近くかかることもあります。 上記マクロ以外に数秒で終わるマクロはありませんか? フィルターの使用は無しでお願いします。

  • マクロでブック間のリンクを切るためにはどうすれば良いですか?

    マクロ初心者です。現状、月次データの分類・集計にマクロを使用し、演算結果を新しいブックで保存して配布用資料としています。配布用資料はマクロを削除して送付しているのですが、その際に配布用のSheetにコピー元でのリンクの情報が残ってしまいます。都度、編集→リンクの設定でリンクの解除をしておりますが、これをマクロで解決する方法はあるでしょうか? 大変つたないコードでお恥ずかしいですが現状は以下の通りです。集計後、配布用の新しいブックを作成する過程とお考えください。 Sub Oct() Sheets("配布資料").Select ActiveSheet.Unprotect Sheets("10月").Select Range("A1:F40").Select Selection.Copy Sheets("配布資料").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Cells.Select Application.CutCopyMode = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Sheets("配布資料").Select ActiveSheet.Unprotect Sheets("配布資料").Select Sheets("配布資料").Copy Sheets("配布資料").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.Dialogs(xlDialogSaveAs).Show ActiveWorkbook.Close End Sub 殆どExcel自体を触ったことが無く、体裁を整えている程度のつたない知識です。ご指導いただければ幸いです。宜しくお願いいたします。

  • エクセルVBAで複数シートにマクロ実行

    エクセル2000です。 Sub 行列非表示() For i = 2 To 120 If Cells(i, "A").Interior.ColorIndex = 3 Then Cells(i, "A").EntireRow.Hidden = True End If Next i For n = 1 To 50 If Cells(1, n).Interior.ColorIndex = 3 Then Cells(1, n).EntireColumn.Hidden = True End If Next n End Sub 上記マクロを、シートAAAとCCCとEEEに実行する場合、 Sub test() Sheets("AAA").Activate Call 行列非表示 Sheets("CCC").Activate Call 行列非表示 Sheets("EEE").Activate Call 行列非表示 End Sub と書くよりももっとすっきり実行する方法は無いでしょうか? 各シートの非表示対象の行や列はそれぞれことなります。 また Sub 行列非表示 自体も、もっと効率的にやる方法はないでしょうか?

  • この場合エクセルVBAでどう書けばいいでしょうか?

    あるシートのH列で、H21からH46のあいだで"False"がある行を非表示にしたいのです。 下記の冗長なマクロでもそうなりますが、For Nextというのを使うともっと簡潔に記述できると思うのですが、初心者のためよくわかりません。ご教示ください。 また、下記の式はシートが保護されていると働きませんが、保護したシートでも動く方法があればそれもあわせて教えていただけると幸いです。 エクセルは95です。 Sub 空白行非表示() G% = Sheets("見積書").Range("H48").Value With Sheets("見積書") Rows("19:47").RowHeight = G% If Range("H21") = False Then Rows("21").EntireRow.Hidden = True End If If Range("H22") = False Then Rows("22").EntireRow.Hidden = True End If If Range("H23") = False Then Rows("23").EntireRow.Hidden = True End If If Range("H24") = False Then Rows("24").EntireRow.Hidden = True End If 途中、繰り返しのため省略 If Range("H42") = False Then Rows("42").EntireRow.Hidden = True End If If Range("H43") = False Then Rows("43").EntireRow.Hidden = True End If If Range("H44") = False Then Rows("44").EntireRow.Hidden = True End If If Range("H45") = False Then Rows("45").EntireRow.Hidden = True End If If Range("H46") = False Then Rows("46").EntireRow.Hidden = True End If End With End Sub

  • Excelマクロを削除するマクロについての質問です。

    Excelマクロを削除するマクロについての質問です。 現在Excel2003で、記入に便利なようにマクロを使って「パソコンボランティア活動報告書」(以下"活動報告書")を作っています。 この活動報告書をセキュリティ警告(マクロを有効にする等)が出ないようにしてホームページに載せたいので、私なりに「新しいマクロの記録」を使って、「マクロ削除」のマクロを作ってみました。 しかしこれでは今までのマクロは削除されますが、「マクロ削除」マクロが残ってしまいます。 今までのマクロはもちろんのこと、「マクロ削除」マクロを消すためにはどうすればいいのでしょうか? Sub マクロ削除() ' ' マクロ削除 Macro ' ' ActiveSheet.Unprotect ActiveWindow.SmallScroll Down:=9 Range("Q27:R27").Select Selection.ClearContents ActiveWindow.SmallScroll Down:=-21 Sheets("リスト項目").Visible = True Application.DisplayAlerts = False Sheets("リスト項目").Delete Cells.Select With Selection.Validation .Delete .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _ :=xlBetween .IgnoreBlank = True .InCellDropdown = True .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With Range("E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17").Select Range("C15").Activate ActiveWindow.SmallScroll Down:=9 Range("E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17,I27:O27,C28:AG41"). _ Select Range("C28").Activate ActiveWindow.SmallScroll Down:=15 Range( _ "E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17,I27:O27,C28:AG41,C42:AG44"). _ Select Range("C42").Activate Selection.ClearComments ActiveWindow.SmallScroll Down:=-36 Range("AC4:AE4,F5:I5,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7").Select Range("O7").Activate Selection.ClearContents Range("E4:P4").Select ChDir "C:\work" ActiveWorkbook.SaveAs Filename:="C:\work\yyyymmddパソコンボランティア活動申請及び報告書.xls", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False Range("E4:P4").Select End Sub

  • マクロのコピペについて

    に実装する際の2回目の処理について助けてください。 Sub Action1or2() Static ChkNext As Boolean If ChkNext = False Then ChkNext = True MsgBox "1回目の押下です。" ' ' Macro1 Macro Range("L9").Select Selection.Copy Sheets("様式2(管理表)").Select Range("C10").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("様式1-1(作業用) ").Select Range("C9:K9").Select Application.CutCopyMode = False Selection.Copy Sheets("様式3(チェック表)").Select Range("B9").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("様式1-1(作業用) ").Select Range("L9").Select Application.CutCopyMode = False Selection.Copy Sheets("様式4(22F倉庫用) ").Select Range("D9").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("様式1-1(作業用) ").Select Else ChkNext = False Call Action2 End If End Sub Sub Action2() MsgBox "2回目の押下です。" 'ここに2回目の実行コードを記述 End Sub 2回目に実行ボタンをクリックした際にSheets("様式1-1(作業用) ")のアクティブセルと("Sheets様式2(管理表"))&"様式3(チェック表)")&"様式4(22F倉庫用) ")のA列にアクティブセルの値とイコールの値がある場合、アクティブセルの2行下の行を選択してコピーを行い、各シートの対象セルの行へ貼り付けをする場合どのような記述をすれば良いかご教示ください。 よろしくお願いします。

専門家に質問してみよう