
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
#6です
大分勘違いをしてしまったかもですので訂正します
>数式がエラーを返していたり(これはご質問の場合ないかと)
比較なので比較できない
対象セルの数式がエラーになっている可能性が高いかな
他については Ifのエラーとは関係ないかも知れませんが
変数の扱い方として理解されてください
No.6
- 回答日時:
こんにちは
>初歩的なVBAのIf文でエラーか発生して使えないのか
初歩的な事と思った時には、初歩的な事を確認していきましょう
If AX = 0 Then を成立させるためには AXは数値を入れられる変数型でなくてはなりません
If AX = 0 Then ここで13エラーが発生して代入時
AX = Calculate.Cells(yy + 3 , xx + 1) でエラーが出ないと言う事は
変数AX は String型 か Variant型 になっています
この事から、変数宣言をしていないのではないかと思いますが
変数宣言を行っている場合は型宣言を加えてください
(Variant型は代入時の変数型になります)
Dim AX As Integer または Longなど
変数宣言をすると上の行の
AX = Calculate.Cells(yy + 3 , xx + 1) で同様のエラー13が出ると思います
これは、Calculate.Cells(yy + 3 , xx + 1) に入っている値が数値ではない事が原因です
このセルに文字が入っていたり、関数(数式)などで "" や文字列表示になっていたり、数式がエラーを返していたり(これはご質問の場合ないかと)、空のセルになっているなどが考えられます
対処方法は#2様が示されています①か
ご質問の見えるコード部分では変数を使用するメリットが見えないので②で対応します
①IsNumelicでCalculate.Cells(yy + 3 , xx + 1)を事前に判定する
②変数を使わずそのままCalculate.Cells(yy + 3 , xx + 1) が0の時処理をするようにする
具体的には ②の例(理解を深める為にはお勧めしませんが)
AX = Calculate.Cells(yy + 3 , xx + 1)を消す
If AX = 0 Then を
Calculate.Cells(yy + 3 , xx + 1) = 0 And Calculate.Cells(yy + 3 , xx + 1) <> "" Then に書き換える
Check.Cells(yy + 9, xx + 2) = AX を
Check.Cells(yy + 9, xx + 2).Value = Calculate.Cells(yy + 3 , xx + 1).Value に書き換える
①については
If IsNumeric(Calculate.Cells(yy + 3, xx + 1)) Then
AX = Calculate.Cells(yy + 3, xx + 1)
If AX = 0 Then
Check.Cells(yy + 9, xx + 2) = AX
・
関係ない所ですがCalculateやCheckは変数名としては避けた方が良いと思いますCalculateはメソッドがありますし、シートの痕跡を残した方が良いのではないかと思います
回答を書くのにながらで時間がかかって重複してしまいましたが、書いたので回答します
No.5
- 回答日時:
こんにちは
コードの断片しかないので、はっきりしたことはわかりませんけれど・・
Calculate ってApplication や Worksheet のメソッドとして存在するので、ご提示のIF文の前にエラーが出るのでは? ・・って思ったら、どうやら変数名なのね。(←紛らわしい)
(変数宣言がないと、エラーになる可能性がありそう)
他の方の回答にもありますが、変数宣言をどうしているのかにもよりますが・・
どこにも情報がないので、そのあたりは正しく(?)処理できているものと仮定します。
ごく単純に、セル値に関数等が入っていて結果がエラー値になっている場合を想定してみました。
変数 AX が、数値型や文字列で宣言されていると、IF文の1行前の代入文でエラーになります。
変数 AX が Variant の場合は、代入文ではエラーは出ませんが、AX = 0 の評価時にエラーが発生します。
多分、ご質問の場合は、こちらのケースに該当するのではないでしょうか?
・・ということで、
処理しているセル範囲に、エラー値が含まれているだけってオチではありませんか?
No.4
- 回答日時:
エラーで黄色いマーカーが出ている時に、そのIF分のAXにカーソルを当ててみたらどう表示されるか?
実際その周辺の画像より、AXがどんな方で宣言されているかなど含めコードを文字でコピペした方がわかるかもですね。
あとはエラーの時のyyとxxにもカーソルを当て、該当するセルの値がどうなっているのかとか?
No.3
- 回答日時:
こんばんは。
型が違うという事は、AXの中身は数字ではないという事になりますが、
AXに、どの様なプログラムで、値を入れているかによるかと。
AX = 〇〇〇〇〇〇 ← ここが、どう書かれているか?
No.2
- 回答日時:
補足ありがとうございます。
直るかどうかちょっとわかりませんが、上の行のAXの代入の後ろに、「.value」をつけてみてください。
だめな場合は、IsNumelicを判定してみてください。
https://uxmilk.jp/48323
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- その他(データベース) 「1004:アプリケーション定義またはオブジェクト定義のエラー」への解消方法に関して 1 2023/07/09 11:47
- Excel(エクセル) VBAのエラーが直せません 4 2023/06/12 22:10
- Excel(エクセル) Excelの関数についておしえてください。 3 2023/04/20 18:36
- Visual Basic(VBA) VBAのエラーについて 2 2023/08/02 17:46
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) エクセルVBA VLOOKUPを使ってのカウント作業 2 2023/02/19 09:03
このQ&Aを見た人はこんなQ&Aも見ています
-
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
5
エクセルエラー13型が一致しませんの直し方教えて下さい。
その他(Microsoft Office)
-
6
VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます
Visual Basic(VBA)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
9
VBAで文字列を数値に変換したい
Excel(エクセル)
-
10
Excel VBA IF文がうまく動作しないわけがわかりません…
Visual Basic(VBA)
-
11
同じ文字列なのにfalseになってしまいます。
Excel(エクセル)
-
12
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
VBAでEmpty値って何ですか?
Excel(エクセル)
-
15
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
16
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
17
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
18
VBA IF文でORを使ったとき後ろの条件が実行されない
Visual Basic(VBA)
-
19
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
20
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
なぜこんな初歩的なVBAのIf文で...
-
実行時エラー -'-2147417848
-
VBAがブレークモードになっ...
-
VBAでのエラー
-
【Excel VBA】マクロをボタンに...
-
INSERT INTOステートメント構文...
-
アクセス 実行時エラー3265
-
マクロについて教えてください...
-
VBAのコードがエラーになっ...
-
ExcelVBAで、ユーザー定義型は...
-
Outlook.ApplicationをCreateOb...
-
ExcelVBA Range クラスの Page...
-
VBSで変数の宣言はできないので...
-
ADODB.Streamを使用してUTF-8を...
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー3001「引数が間違...
-
Invalid procedure call or arg...
-
vbaのvlookup関数エラー原因を...
-
Access2000での未定義関数repla...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
なぜこんな初歩的なVBAのIf文で...
-
ExcelVBA Range クラスの Page...
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー -'-2147417848
-
【Excel VBA】マクロをボタンに...
-
Outlook.ApplicationをCreateOb...
-
VBAでのエラー
-
マクロについて教えてください...
-
実行時エラー3001「引数が間違...
-
実行時エラー48発生時のDLL特定...
-
VB6+SQL サーバー 2000 で 実行...
-
エクセルエラー13型が一致しま...
-
VBS実行時エラー オブジェクト...
-
ADODB.Streamを使用してUTF-8を...
-
INSERT INTOステートメント構文...
-
VBAで、定数式が必要ですのエラ...
-
OLEDB.NETで接続できない
-
VBSで変数の宣言はできないので...
おすすめ情報
これがその内容です。