実現したいこと
ExcelVBAで作成したマクロをアドイン化したい
前提
ExcelVBAで作成したマクロをアドインとして登録、利用できるようにしたいのですが、
作成したコードをアドイン実行しようとしても、
「このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります」
と表示され実行できません。
ちなみに、アドインではなくマクロとしては問題なく実行されます。
他のアドインは問題なく実行できているので、Excelの設定が原因ではないと考えておりますが、
解決策が分かりません。
※ワークシート関数としてxlookup関数を用いているのですが、それが原因でしょうか。
また、xlookup関数を用いずにシートをまたいだ転記の方法があればご教示願います。
発生している問題・エラーメッセージ
「このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります」
該当のソースコード
Sub 転記() Dim A, B, C As String 'シート名 Dim i As Long Dim mySht1 As Worksheet Dim myRng1, myRng2, myRng3, myRng4, myRng5, myRng6 As Range A = "PJ一覧" B = "前月" C = "貼付シート" Set mySht1 = Worksheets(1) Set myRng1 = Sheets(B).Range("S:S") '検索範囲(前月シートのS列) Set myRng2 = Sheets(B).Range("B:B") '戻り値(前月シートの工番) Set myRng3 = Sheets(C).Range("A:A") '検索範囲(貼付シートのA列) Set myRng4 = Sheets(C).Range("K:K") '戻り値(貼付シートの受注金額) Set myRng5 = Sheets(C).Range("A:A") '検索範囲(貼付シートのA列) Set myRng6 = Sheets(C).Range("AM:AM") '戻り値(貼付シートの官民区分) For i = 2 To Cells(Rows.Count, 4).End(xlUp).Row Cells(i, 2) = Application.XLookup(mySht1.Cells(i, 19), myRng1, myRng2, "無", 0, 1) 'S列を参照して工事番号を転記 If Cells(i, 2) <> 0 Then Cells(i, 6) = Application.XLookup(mySht1.Cells(i, 2), myRng3, myRng4, "無", 0, 1) '工事番号を参照して受注金額を転記 Cells(i, 9) = Application.XLookup(mySht1.Cells(i, 2), myRng5, myRng6, "無", 0, 1) '工事番号を参照して官民区分を転記 End If Next End Sub
試したこと
補足情報(FW/ツールのバージョンなど)
Excel 365 MSO (バージョ 2022) 32bit

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/04/04 23:37