
いままで問題なく動いていたVBAが標記のようなメッセージをだして動かなくなりました。
ネットで調べるとDecareにPtrSateを付加すれば良いとのことです。
ところがソースにはDecareステートメントはありません。
どうすればよろしいでしょうか、ご教示ください。
なお赤字で
Declare Function BeepAPI Lib "kernel32.dll" Alias "Beep" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
というメッセージもエディタに表示されています。
OSは windows10Pro64ビット
Excelは Microsoft 365 mosです。
No.4
- 回答日時:
Declare Function BeepAPI Lib "kernel32.dll" Alias "Beep" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
上の2行を単なる赤いメッセージと勘違いされていらっしゃいますが、Windows API の関数に接続するために記述された列記としたコードなのです。プロシージャ内で使われる API関数のコードと密接な関わりを持っている重曹なコードです。そして Decare ステートメントではなく、Declare ステートメントになります。
Declare ステートメント (VBA) | Microsoft Docs
https://docs.microsoft.com/ja-jp/office/vba/lang …
モジュールレベルで記述する決まりなので、プロシージャの上に記述されています。赤く表示されているのは、コンパイルエラーの箇所が赤く強調されているためですが、 Declare ステートメントは Excel を 32bit版 から 64bit版 に変更したら書き換える必要があります。
Beep関数(プロシージャ内では BeepAPI と記述されているはずです)に接続するコードは、以下のように修正すればコンパイルエラーは解消されます。
Declare PtrSafe Function BeepAPI Lib "kernel32.dll" Alias "Beep" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
【参考まで】
Beep 関数 - Win32apps | Microsoft Docs(英語)
https://docs.microsoft.com/ja-jp/windows/win32/a …
ご教示ありがとうございます。
>Declare ステートメントは Excel を 32bit版 から 64bit版 に変更したら
>書き換える必要があります。
そのようですね。
ただDeclareステートメントは全く使用していないのです。
というより、私自身が初心者ですのでDeclareステートメントがあるということを今回初めて知りました。
エラーメッセージの画像などを職場にいったときにとるようにします。
引き続きご教示よろしくお願いします。
No.3
- 回答日時:
#2です。
>VBAエディタの上部に赤色で表示されており、エディタでは修正できません。
そうなんですね。コードウィンドに表示されているのではないのですね。
VBEは表示されているのですか?
既に行っていると思いますが、一応、念のため
Alt+F11でVBEを開き
編集タグ、検索 検索する文字に Declare 対象のオプションボタンを
カレント プロジェクト で 次を検索を押して検索してみてください。
もし見つからない場合は、プロジェクトウィンドウにある違うプロジェクトでも探してみてください。
(アドインや個人用マクロブックPERSONAL.XLSBの可能性があります)
他のプロジェクトに保護などが設定されている場合、修正が難しいので、最新のものに変えるか、使用を外す事になると思います。
>いままで問題なく動いていた
との事なので最近入れたアドインの可能性もありますね。64bitに対応していないものを入れたとか、、です。
上記に当てはまる事柄がなく解決できない場合は、
私が回答できるか分かりませんが、画像を掲示されるとわかり易いと思います。
簡単な画像作成手順
Shift+Windowsキー+Sキー で Window表示範囲を選択
画像ソフトの新規キャンパスにペースト、必要に応じて加工し画像保存、 画像添付でUP
あと、最近疎くてごめんなさい。
Microsoft 365 mos ってどのバージョン?
くりかえしのご教示ありがとうございます。
職場に行くのが不定期なのですが、今週中にいって画像をアップするようにします。
>アドインや個人用マクロブックPERSONAL.XLSBの可能性があります
職場でVBAを作成できるのは私ひとりですので、この可能性はないと思います。
No.2
- 回答日時:
ごめんなさい。
ご質問文読み間違えました。#1忘れてください。
>ソースにはDecareステートメントはありません。
>メッセージもエディタに表示されています。
エディタのどこに表示されているのでしょう?
その表示?(デバッグ)? を書き換えられるなら、
#If VBA7 And Win64 Then
Private Declare PtrSafe Function BeepAPI Lib "kernel32.dll" Alias "Beep" _
(ByVal dwFreq As LongPtr, ByVal dwDuration As LongPtr) As Long
#Else
Private Declare Function BeepAPI Lib "kernel32.dll" Alias "Beep" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
#End If
環境がそろっていないので検証していません。
早速のご教示ありがとうございます。
>エディタのどこに表示されているのでしょう?
>その表示?(デバッグ)? を書き換えられるなら、
Declare Function BeepAPI Lib "kernel32.dll" Alias "Beep" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
↑
VBAエディタの上部に赤色で表示されており、エディタでは修正できません。
No.1
- 回答日時:
こんばんは、
違ってらごめんなさいね。
Declare PtrSafe Function ・・・で解消されますでしょうか?
ちゃんと確認していないので、参考サイトを
https://excel-databace.hatenablog.com/entry/64bi …
早速のご教示ありがとうございます。
>Declare PtrSafe Function
これで解消されると思うのですが、そもそもソースにDeclareという単語がありません。ですのでどう追加すれば良いのかがわからないのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Visual Basic(VBA) VBA リボンののリカバリーでオーバーフローエラーになります 2 2023/07/04 19:07
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) excel vba 参照渡しと値渡し 2 2022/04/27 10:45
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Excel(エクセル) 【VBA】 Alt+PrintScreenにてアクティブウィンドウのスクショを貼付する方法 4 2022/12/08 20:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onmouseoverに複数の命令を書き...
-
HTMLのレイヤーとは?
-
スライドショーの上にロゴマー...
-
ポップアップウィンドウを気付...
-
クリックしても、リンクに飛ば...
-
ホームページにバナーを貼りた...
-
ボタンを押したままにする。
-
ALT属性
-
IMGタグでTIFF画像を表示
-
thickboxでcloseボタン右上配置...
-
Content-type: を切り替える方法
-
「DecareステートメントにPtrSa...
-
リンク画像をホバーアニメーシ...
-
ボタンの枠について
-
画像をHPの上下に表示させるには?
-
リンク画像が表示されない…この...
-
背景画像がちらつく原因は?
-
インラインフレームのスムーズ...
-
HPに画像を載せたい!
-
<A href= と<IMG srcの使い分け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クリックしても、リンクに飛ば...
-
スライドショーの上にロゴマー...
-
バナーの貼り方とバナーにリン...
-
ボタンを押したままにする。
-
IMGタグでTIFF画像を表示
-
期間ごとに画像表示を切り替え...
-
WEBサイトの一部コンテンツがス...
-
画像クリックで別の画像
-
HTMLにQRコードを挿入する方法
-
タイトルバーに画像を入れるHTM...
-
form以外でのpostってできますか?
-
背景が透明なリンクボタンで、...
-
拡張子無しで画像を表示したいです
-
pngやjsの後ろの英数字の意味は...
-
アルバムをめくるように、画像...
-
クリッカブルMAP領域が分かる様...
-
画像クリックでクリップボード...
-
areaタグのマウスオーバー時に枠線
-
リンクの上にマウスカーソルを...
-
リンクバナーのHTMLタグ。画像...
おすすめ情報