質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

1744閲覧

間違っていないはずのエラー。「err13:型がちゃうで」

otftrough

総合スコア476

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2016/04/26 07:15

型が違うって言われます。
直すべき場所がわかりません。
このエラーが出るのは複数のセルをいっぺんに変更(削除)したときです。
VBE場面

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

Target は変更対象のセル(複数)ですので、複数のセルに対する Target.Value は配列として返っています。
そのため 配列 = ""(文字列)という比較が行われ、型が一致しないのでエラーになります。

投稿2016/04/26 07:26

kaz.Suenaga

総合スコア2037

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

原因はkaz.Suenagaさん提示のとおりと思います。

エラーが発生した際、原因を特定するためには、考えられる要因をひとつひとつ潰していくのが基本です。

今回の場合、問題となっている判定文には
①(Target.Column = 1)
②(Target.Row = 2)
③(Not Target.Value = "")
と3つも要素があります。

例えばこれを分解して1個ずつの条件文に変更してみると、問題が③にあることに気がつけます。

If (Target.Column = 1) Then If (Target.Row = 2) Then If(Not Target.Value = "") Then 'ここにくるまでのどこでエラーが発生するかを試してみる End If End If End If

一度にたくさんの問題を抱えて訳が分からなくなってしまったときは、小さな単位で少しずつ検証していくことで徐々に問題が見えてきますよ。

そして問題がわかったら次はどう解決するか?ですが、これは今回の質問内容だけでは汲み取ることができません。
この処理が何を目的としていているのか、どういう状況で利用されるのか、説明が足りていません。


最後に少し苦言を述べさせていただきます。

今回のようにスクリーンショットでソースコードを張り付けるのは、質問する人はラクかもしれません。

しかし回答する側の立場からすると、試しに動かそうにも画像を見てコードを手入力しなければなりませんよね?
そこまでして回答してくれる優しい人がどれほどいるでしょうか。

今回は、エラーの原因の調べ方、質問の投げ方、質問タイトルのつけ方、いろいろなところが雑すぎだったと思います。
今後はそのあたりも気にしながら、開発スキルもコミュニケーションスキルも磨いてもらえるとうれしいです。

頑張ってください。

投稿2016/04/26 13:11

jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otftrough

2016/04/26 13:58

いやいや、画像でコード載せる方が手間ですよw
jawa

2016/04/27 00:10

・・・ではなぜ敢えてその選択をしたのか。 そして苦言を述べられたのが気にさわったのかもしれませんが、この回答。 私が改善したほうがいいといったのはまさにそういうところなのですが、伝わらないようですね。 もう何も言うことはありません。失礼しました。
otftrough

2016/04/27 03:25

ありがとうございました
guest

0

ベストアンサー

ここですかね?

Not Target.Value = ""

NotTarget.Valueにかかってるんじゃないでしょうか?

こうしてみては?

Target.Value <> ""

投稿2016/04/26 07:28

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otftrough

2016/04/26 07:59

よくわかりません。
ttyp03

2016/04/26 08:13

回答の意味がわからないということでしょうか? 修正してみたけど解決しないということでしょうか?
otftrough

2016/04/26 09:13

<>というのがなんなのかわかりませんでした。 <>の中にはなにか書くべきなんでしょうか?そのまま書きましたが、同じエラーが出ました。
ttyp03

2016/04/26 09:41

<> は不等号の意味です。 こちらでも試してみたところ、セルを複数選択したときにエラーになるようです。 原因はkaz.Suenagaさんがおっしゃっている通りです。 対策としては複数選択状態かを判定して、単一セルのときにのみ Target.Value を参照するようにすると良いと思います。 If (Target.Column = 1) And (Target.Row) = 2 And (Target.Count = 1) Then If Not Target.Value <> "" Then ~ End If End If Worksheet_Changeイベント自体複数セルを受け付けないのであれば、関数の入り口ではじいてしまった方がいいかもしれません。
otftrough

2016/04/26 13:57

ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問