A 回答 (7件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
補足ありがとうございます。
直るかどうかちょっとわかりませんが、上の行のAXの代入の後ろに、「.value」をつけてみてください。
だめな場合は、IsNumelicを判定してみてください。
https://uxmilk.jp/48323
No.3
- 回答日時:
こんばんは。
型が違うという事は、AXの中身は数字ではないという事になりますが、
AXに、どの様なプログラムで、値を入れているかによるかと。
AX = 〇〇〇〇〇〇 ← ここが、どう書かれているか?
No.4
- 回答日時:
エラーで黄色いマーカーが出ている時に、そのIF分のAXにカーソルを当ててみたらどう表示されるか?
実際その周辺の画像より、AXがどんな方で宣言されているかなど含めコードを文字でコピペした方がわかるかもですね。
あとはエラーの時のyyとxxにもカーソルを当て、該当するセルの値がどうなっているのかとか?
No.5
- 回答日時:
こんにちは
コードの断片しかないので、はっきりしたことはわかりませんけれど・・
Calculate ってApplication や Worksheet のメソッドとして存在するので、ご提示のIF文の前にエラーが出るのでは? ・・って思ったら、どうやら変数名なのね。(←紛らわしい)
(変数宣言がないと、エラーになる可能性がありそう)
他の方の回答にもありますが、変数宣言をどうしているのかにもよりますが・・
どこにも情報がないので、そのあたりは正しく(?)処理できているものと仮定します。
ごく単純に、セル値に関数等が入っていて結果がエラー値になっている場合を想定してみました。
変数 AX が、数値型や文字列で宣言されていると、IF文の1行前の代入文でエラーになります。
変数 AX が Variant の場合は、代入文ではエラーは出ませんが、AX = 0 の評価時にエラーが発生します。
多分、ご質問の場合は、こちらのケースに該当するのではないでしょうか?
・・ということで、
処理しているセル範囲に、エラー値が含まれているだけってオチではありませんか?
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.7
- 回答日時:
#6です
大分勘違いをしてしまったかもですので訂正します
>数式がエラーを返していたり(これはご質問の場合ないかと)
比較なので比較できない
対象セルの数式がエラーになっている可能性が高いかな
他については Ifのエラーとは関係ないかも知れませんが
変数の扱い方として理解されてください
お探しの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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Excel VBA IF文がうまく動作しないわけがわかりません…
Visual Basic(VBA)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
-
4
UserForm1.Showでエラーになります。
工学
-
5
VBA IF文でORを使ったとき後ろの条件が実行されない
Visual Basic(VBA)
-
6
【vba】指定範囲の中に任意の文字があるときの条件分岐
Excel(エクセル)
-
7
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
8
VBAで文字列を数値に変換したい
Excel(エクセル)
-
9
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
10
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
11
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
12
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
13
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
14
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
15
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
16
セルのコピーで「オブジェクトが必要です。」
Visual Basic(VBA)
-
17
ExcelのVBAのマクロで他のシートの複数項目をクリアする方法
Visual Basic(VBA)
-
18
配列の参照渡しで型が一致しません。
Visual Basic(VBA)
-
19
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
20
Cellsのかっこの中はどっちが行と列なの?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
OLEDB.NETで接続できない
-
【Excel VBA】マクロをボタンに...
-
EXCEL VBAマクロ中断でデバッグ...
-
ExcelVBA Range クラスの Page...
-
VBAがブレークモードになっ...
-
VBAでのエラー
-
VB6+SQL サーバー 2000 で 実行...
-
VBS実行時エラー オブジェクト...
-
実行時エラー -'-2147417848
-
実行時エラー3001「引数が間違...
-
ASP.NET OleDbConnectionが定義...
-
マクロについて教えてください...
-
VBA エラーと対策
-
ADODB.Streamを使用してUTF-8を...
-
なぜエラーになるのでしょうか...
-
エラー1004 PDFの保存ができま...
-
職場から目的地までの距離集計
-
なぜこんな初歩的なVBAのIf文で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
VBAでのエラー
-
マクロについて教えてください...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
VBS実行時エラー オブジェクト...
-
EXCEL VBAマクロ中断でデバッグ...
-
Outlook.ApplicationをCreateOb...
-
VBSで変数の宣言はできないので...
-
VBAのコードがエラーになっ...
-
実行時エラー -'-2147417848
-
ADODB.Streamを使用してUTF-8を...
-
EXCEL/VBAで、自分のPCだけエラ...
-
OLEDB.NETで接続できない
-
プロシージャ名の取得
-
VB6+SQL サーバー 2000 で 実行...
おすすめ情報
これがその内容です。