• ベストアンサー

あるexcelファイル(xlsm)を起動できない

excel2021からexcel2024に変更後、あるexcelファイル(xlsm)を起動後に excel2021で利用できていたマクロが反応しなくなっていました。 マクロは、シートにボタンを作成してクリックする事で 起動するようしていてexcl2021では問題なく利用できていました。 OSは、管理者権限で起動していますし トラストセンターの設定 > マクロの設定で「すべてのマクロを有効にする」を選択済みです。 他にチェックすべき点はありますか ? ちなみのSheet1に書き込んだマクロコードは、以下のような内容です。 不具合をチェックしていて デザインモードで各ボタン(全部で5個)をクリックしたした時に全てのボタンで 以下のように表示されるのは異常ですよね? 埋め込み("Forms.CommandButton.1","") ファイルが破損したのでしょうか? Option Explicit Private Sub CommandButto_Click() 'クリアー Range("A2:A32").UnMerge '結合セル解除 Range("B2:E32") = "" Range("A2:E32").Borders.LineStyle = True End Sub Private Sub CommandButton1_Click() '時系列並び替え Dim c As Range For Each c In Range("A2", Cells(Rows.Count, 1).End(xlUp)) If c.MergeCells Then If c.Value <> "" Then c.MergeArea.Columns("B:E").Sort Columns("C") End If End If Next End Sub Private Sub CommandButton2_Click() '1行追加 Dim xCount As Single Dim RowsNo xCount = 1 '行追加 RowsNo = ActiveCell.Row Rows(RowsNo + 1).Resize(xCount).Insert Cells(RowsNo, 1).Resize(xCount + 1).Merge End Sub Private Sub CommandButton3_Click() '結合解除 Range("A2:A40").UnMerge Range("A1:A40").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub Private Sub CommandButton4_Click() '印刷 With ActiveSheet .PageSetup.PrintArea = "A1:E34" '印刷範囲を設定 .PrintPreview '印刷プレビュー .PageSetup.PrintArea = "" '印刷範囲をクリア End With End Sub

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.5

>  一度全てのマクロを削除して以下を参考に新規にボタンを作成してマクロを登録、 >  実行すると問題なく作動したので上記の無効は今回の作動不備には関係ないように思われます。 > > https://www.sejuku.net/blog/66576 これで作成しているのはフォームコントロールのボタンです。 「=埋め込み("Forms.CommandButton.1","")」と表示されるのはActiveX コントロールのボタンです フォームコントロールはActiveXが無効でも動きますので、そちらが安全かもしれません。

NuboChan
質問者

お礼

>「=埋め込み("Forms.CommandButton.1","")」 >と表示されるのはActiveX コントロールのボタンです >フォームコントロールはActiveXが無効でも動きますので、 >そちらが安全かもしれません。 なるほど、全く考え違いをしていたのがアドバイスを受けて理解できました。 近頃は、ボタンにマクロを登録する事が無く 昔作成したコードを Excel2024の環境でActiveXを無効にして利用したために反応しなかったのが理解できました。 これで原因も判ってスッキリしました。 毎回ご指導いただきありがとうございます。

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

その他の回答 (4)

  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.4

あと Office ファイルで ActiveX 設定を有効または無効にする https://support.microsoft.com/ja-jp/office/office-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A7-activex-%E8%A8%AD%E5%AE%9A%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%BE%E3%81%9F%E3%81%AF%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B-f1303e08-a3f8-41c5-a17e-b0b8898743ed ActiveX コントロールの設定を変更する のところが無効になっていないでしょうか

NuboChan
質問者

お礼

>無効になっていないでしょうか アドバイスありがとうございます。 全て無効になっていたので トランスセンター>ActiveXの設定   「警告を表示せずに、全てのコントロールを制限なしに有効にする」 にしました。 上記の操作をする前に  一度全てのマクロを削除して以下を参考に新規にボタンを作成してマクロを登録、  実行すると問題なく作動したので上記の無効は今回の作動不備には関係ないように思われます。 https://www.sejuku.net/blog/66576 最終的に何が悪かったのか? 原因が判らないうちに利用できる状態となったので 後味が悪い結果ですが解決としたいと思います。 直ぐには解決にはせずに少し間をおきたいと思います。 今回の件に付き、なにか他に見解等あればお願いします。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.3

> VBAeditorの画面には、飛びますが > 該当するプロシージャには飛んでいないようです。 2024ではないのでこれですという回答ができないのですが 現状のコードをどこかにコピーしておいて一度全て消して(もしくはコメントしておいて)デザインのボタンダブルクリックで Private Sub CommandButton1_Click() End Sub が出来たらそこに元のコードの中身をコピペするとか できなかったら =EMBED("Forms.CommandButton.1","") にしてみるとか ボタンから作り直してみるとかでしょうか

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.2

> 以下のように表示されるのは異常ですよね? > > 埋め込み("Forms.CommandButton.1","") そういうものみたいですよ Excel フォームコントロール、ActiveXコントロール https://ameblo.jp/unicom-k/entry-12864766341.html 2013だと =EMBED("Forms.CommandButton.1","") になっていますが ボタンのデザインモードでボタンをダブルクリックして該当するプロシージャに飛ぶかどうか見てみてはいかがでしょう。 また、MsgBoxを入れて実行されているかどうかを確認してもいいかもしれません。

NuboChan
質問者

お礼

kkkkkmさん、毎度お世話になりありがとうございます。 >そういうものみたいですよ なるほど、埋め込みの式に間違いは無いのですね。 >ボタンのデザインモードでボタンをダブルクリックして >該当するプロシージャに飛ぶかどうか見てみてはいかがでしょう。 VBAeditorの画面には、飛びますが 該当するプロシージャには飛んでいないようです。

すると、全ての回答が全文表示されます。
回答No.1

このマクロが、コピペされたものだとすると Private Sub CommandButto_Click() これは、タイポじゃないですか? Private Sub CommandButton_Click() ただの打ち間違いなら、すみません。

NuboChan
質問者

お礼

失礼しました。 コードをコピペして投稿する時にミスしたようです。 Private Sub CommandButto_Click() を Private Sub CommandButton_Click() に修正します。 今気づきましたが VBAeditorから各マクロを実行すると マクロは実行されるようです。  

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