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

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

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

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

1186閲覧

VBA/アプリケーション定義またはオブジェクト定義のエラーに関して

sasamaru

総合スコア2

VBA

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2021/06/29 03:58

前提・実現したいこと

VBAのマクロで規則性のあるピーク値を求めるため
プログラムを作成しています.

Range,Cellsのルールのようなところで躓いており
実行時エラー'1004', アプリケーション定義またはオブジェクト定義のエラーです.
というエラーが発生しました.

Range,もしくはCellsを使用する場合(x,y)と行・列を
記載するのですが、行・列ともに変数は使用できないというルールでしょうか?

発生している問題・エラーメッセージ

実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです.

該当のソースコード

VBA

1Sub Compare5_2() 2 3Dim startRow As Integer 4Dim startCol As Integer 5 6Dim MAX_ROW As Integer 7 8Dim i As Integer 9 10Dim ValueA As Single 11Dim ValueB As Single 12 13Dim calValue As Single 14 15Dim jdgVal As Single 16 17Dim rsltCol As Integer 18 19Dim FirstMaxRow As Integer 20 21Dim myRng As Range 22 23Dim startSearchRow As Integer 24Dim myMatchMaxRow As Integer 25Dim serchNum As Integer 26 27Dim ws As Worksheet 28 29startRow = 5 30startCol = 19 'S列のaveだけを使用する 31 32MAX_ROW = 4650 '20secまでで一旦決め打ち 33 34jdgVal = 0.02 '閾値一旦決め打ち 35 36rsltCol = 6 '初期値がF列 37 38startSearchRow = 100 '100行目から探索. 約0.4secまでを対象から除く 39serchNum = 100 '100セルずらして最大値探索していく 40 41'Sheet00000005 42 '最初の最大値を探る⇒最大値の行/列番号(実際は列固定なので行番号のみ)とそのセルの値が欲しい 43 44'Set ws = ThisWorkbook.Worksheets("00000005") 45'Set myRng = ws.Range(ws.Cells(startSerchRow, startCol), ws.Cells(startSerchRow + serchNum, startCol)) 46Set myRng = Range(Cells(startSerchRow, startCol), Cells(startSerchRow + serchNum, startCol)) 47'Set myRng = Range(Cells(100, startCol), Cells(200, startCol)) ' 通る 48'Set myRng = Range(Cells(startSerchRow, 19), Cells(startSerchRow + serchNum, 19)) '通る

試したこと

ソースコードの下から3行目がエラーが出ている部分になります.
startSerchRowを整数に、もしくはstartColを整数にするとエラーは生じません.

初期値が0になっていることでエラーが生じる、シート指定をしていることは無いと思うのですが、、

補足情報(FW/ツールのバージョンなど)

Excel 2016

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

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

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

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

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

jinoji

2021/06/29 04:43

とりあえず、 startSearchRow startSerchRow 掲載時のスペルミスなだけで実際のコード上では正しいのでしょうか。
sasamaru

2021/06/30 00:34

実際のコード上でもスペルミスでした. 申し訳ございません.
guest

回答1

0

ベストアンサー

Cellsは行、列共に1始まりで指定します。
startSerchRowは0として扱われるのでエラーになりますね。

※本当に一番下はエラーにならないですか?

投稿2021/06/29 04:26

neconekocat

総合スコア443

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

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

sasamaru

2021/06/30 00:36

スペルミスでココが0になっていました. ご指摘ありがとうございます. 行列ともに1~の値であれば変数でも問題ないということですね. ありがとうございます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問