
コマンドボタンがセル上の任意の文字を検知して、有効/無効にするため下記の様に
Private Sub Worksheet_Change(ByVal Target As Range)
➡If Target.Address = "$BA$1" And Target.Value = "合格" Then
⑤FCDデータ転送.Enabled = True
ElseIf Target.Address = "$BA$1" And Target.Value = "" Then
⑤FCDデータ転送.Enabled = False
End If
End Sub
BA1のセルに”合格”と入れたら、コマンドボタンが有効に”空白”なら無効にと出来たと思っております。
問題無くコマンドボタンは有効/無効に動く事が確認出来たのですが、複数セルを選択しセル内の文字を消したり、マクロによる複数セル内の文字を消すと何故かエラー13(型が一致しません)、が出てしまいます。(単セルの文字削除の時は出ないのですが・・・)
デバック時には、添付写真の黄色部(上記➡)の所がおかしいとなるのですが、よくわからず・・・・。
ここ2か月間ゼロから独学でVBAを覚えてきたのですが、自分で解決できるレベルを超えてしまったので、皆さまを頼らせて頂きたく(泣き)
何卒、ご教授の程よろしくお願いします。

No.1ベストアンサー
- 回答日時:
こんにちは。
複数セルでエラーが出るという事でしょうか?
1つずつのセルで処理すれば良いのでは?と思います。
全て手入力ですので、間違っているかも知れませんが、下記の様にして
どうでしょうか? もし、エラーが出たら、修正してみて下さい。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRng as Range
For Each myRng in Target
With myRng
If .Address = "$BA$1" And .Value = "合格" Then
⑤FCDデータ転送.Enabled = True
ElseIf .Address = "$BA$1" And .Value = "" Then
⑤FCDデータ転送.Enabled = False
End If
End With
Next
End Sub
ご丁寧な回答を頂き感謝いたします!
VBA独学初心者の小職にとっては、一番分かりやすく解決が早急に出来る、mygoonickname様のを参考にさせて頂きました!
内容を拝見いたしまして、さっそく取り入れた所問題なく実行されました!エラー13は無事解消されました!ありがとうございます!!
”VBAが出来たらカッコいいな”の発想から、独学でやってきたのですが、やはりこういったデバックとか、問題を解決できる能力がある人に憧れます!ご丁寧なご回答誠にありがとうございました!!
No.3
- 回答日時:
こんばんは
エラーの原因は、すでに回答されている通りでは無いかと思います。
対策については、示されている内容だけでは分かりませんので
私も独学なのでデタラメな解釈をしている事もありますが、
アドバイスとしては、シートイベントを使用する場合、使うイベントを理解する事が必要です。
Private Sub Worksheet_Change(ByVal Target As Range) は
対象シートのどのセルを変更しても実行されます。
単セルでも複数セルでも全然関係のないセルを変更しても実行されるので、
シート処理が重くなったり、思わぬエラーが発生したりします。
従って実行したい条件(セル範囲など)をプロシージャの初期に設定する必要が出て来ます。
よく使う例として
If Intersect(Target, Range("A1:A100")) Is Nothing Then Exit Sub
A1~A100セル以外のセルが変更された場合、ここでExit Sub
イベントプロシージャが終了します
単セルの変更以外では実行しないようにするには
If Target.Count > 1 Then Exit Sub
Then Exit Subとしていますが、複数範囲や結合セルなどを対処とする場合は
Elseなどで分岐処理を行ってください。
実行コードでセルの値を変更する事により繰り返しイベントが発生しないようにするには
Application.EnableEvents = False イベント発生を抑止
正し、このコードを実行した場合、処理の後に
Application.EnableEvents = True で 設定を戻す必要があります。
*デバッグなどで途中で止めて抜けてしまいイベントが発生しない状況が発生する事を覚えておいてください。
上記は、よく使うコードですが、他にも結合セル判定などが必要な場合もあります。 さらに選択範囲すべてを処理したい場合などは、ループ処理で対応するのがわかり易いと思います。
おお!もうド素人丸出しの返信になってしますのですが、Worksheet_Changeがシート全体に影響するとは思いもしりませんでした!
よくこの辺を勉強しなおして、ご教授頂いた内容で実行できるかTRYしてみようかと思います!
ご丁寧なご回答ありがとうございました!!
No.2
- 回答日時:
こんにちは
とりあえずエラーの原因と対処法のみ。
>(上記➡)の所がおかしいとなるのですが、~~
その際の、個々の内容を調べてみればわかると思いますけれど・・・
複数のセルが同時に変更された場合(コピペなどで)、ChangeイベントのTargetにはそのセル範囲(=複数セル)が渡されます。
単体セルでない場合は、Target.Valueは「エラー13」を返します。
というのが原因でしょう。
(Target.Addressはエラーになりませんが、複数のセル範囲を返すので、目的のセルが含まれていても一致にはなりません)
そのような場合でも、きちんと処理したければ
For Each c In Target
' 個別のセル(c)の処理
Next c
のような形式で、ひとつづつのセルをチェックして処理するようにすれば宜しいのではないかと思います。
分かる方には対処方が直ぐ分かるのですね・・・・ホント頭が上がりません。
小職の説明分もあいまい(理解できていないからですね・・・ホント・・・泣)の中、小職の言いたい事をくみ取って頂き、誠に感謝です!このようなやり方もあるのですね・・・、これもまた勉強から入り、どの様に実行されるのかやってみようと思います!
早急なご回答に誠に感謝いたします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) エクセル VBAで複数セル選択時エラーになる問題 3 2022/10/04 02:40
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) 【再投稿】VBAで動作しなくて困っています 2 2022/10/11 11:05
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA:結合されたセルに対する「Target」について
Access(アクセス)
-
エクセルエラー13型が一致しませんの直し方教えて下さい。
その他(Microsoft Office)
-
Changeイベントでの複数セルのクリアの処理について
Visual Basic(VBA)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
エクセル VBAで複数セル選択時エラーになる問題
Visual Basic(VBA)
-
6
エクセルVBA セルの入力後「Delete」キーを押したか判断するプログラム
Excel(エクセル)
-
7
型が一致しない というエラー
Excel(エクセル)
-
8
Vba 型が一致しません(エラー13)のセルを特定する方法を教えてください
Visual Basic(VBA)
-
9
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
10
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
11
[Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。
Visual Basic(VBA)
-
12
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
13
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
UserForm1.Showでエラーになります。
工学
-
16
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
17
excel vba で 実行時エラー13となります。
Excel(エクセル)
-
18
エクセル:Worksheet_Changeのエラー回避
Excel(エクセル)
-
19
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
20
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数について
-
【マクロ】元データと同じお客...
-
エクセルのリストについて
-
エクセルの複雑なシフト表から...
-
【マクロ】変数に入れるコード...
-
【マクロ】別ファイルへマクロ...
-
Amazonでマイクロソフトオフィ...
-
【マクロ】【相談】Excelブック...
-
エクセルシートの見出しの文字...
-
【マクロ】数式を入力したい。...
-
【マクロ】左のブックと右のブ...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
【マクロ】実行時エラー '424':...
-
エクセル GROUPBY関数について...
-
Office2021のエクセルで米国株...
-
Excelで4択問題を作成したい
-
エクセルのVBAで集計をしたい
-
別のシートの指定列の最終行を...
-
ページが変なふうに切れる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報