teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

誤りの修正

2021/02/08 00:21

投稿

退会済みユーザー
answer CHANGED
@@ -8,7 +8,6 @@
8
8
  Range(Cells(i, 3), Cells(i, 7)).Interior.Color = RGB(255, 0, 0)
9
9
 
10
10
  '指定は基本的に"(ダブルクォーテーション)で囲む
11
- 'mycellには配列が入っているので配列箇所を指定して中の値を取り出す作業が必要
12
11
  If 30 <= DateDiff('d, mycell, Date) And mycell <> '' Then
13
12
  If 30 <= DateDiff("d", mycell, Date) And mycell <> "" Then
14
13
  ```

2

誤りの修正

2021/02/08 00:21

投稿

退会済みユーザー
answer CHANGED
@@ -9,21 +9,12 @@
9
9
 
10
10
  '指定は基本的に"(ダブルクォーテーション)で囲む
11
11
  'mycellには配列が入っているので配列箇所を指定して中の値を取り出す作業が必要
12
- '?箇所の指定は日付の終了日時を指定のため正しい値を要指定
13
12
  If 30 <= DateDiff('d, mycell, Date) And mycell <> '' Then
14
- If 30 <= DateDiff("d", mycell, ?) And mycell <> "" Then
13
+ If 30 <= DateDiff("d", mycell, Date) And mycell <> "" Then
15
14
  ```
16
-
17
-
18
15
  [Cells](https://excel-ubara.com/excelvba1/EXCELVBA311.html)
19
16
  > VBAで位置を変化させるような1つのセルを指定する場合の書き方の基本は、
20
17
  Cells(行, 列)
21
18
  このように書いて下さい。
22
19
 
23
- 構文エラーを直すだけならこれですが、DataDiff関数の使い方を誤っています。
24
- サンプルデータでは?の箇所は推測不可能です。
25
- [DataDiff関数構文](https://officek.net/access/a-function/al-date/datediff/)
26
- > DateDiff(単位, 日時1, 日時2, 週の開始曜日, 年の第1週)
27
- 2つの日時の間隔を返します。間隔とは日時1と日時2の間に指定した単位の「カウントの基準」(表A 参照)が何回あるかを表す数です。日時1と「カウントの基準」が一致する場合、日時1はカウントの対象になりません。
28
-
29
20
  基本的な構文の記入ミスですが、手打ちだと思うので最初は慣れるまでRange()と書いてから中にCells()と書くようにすれば徐々にミスをなくせます。

1

誤りの修正

2021/02/08 00:20

投稿

退会済みユーザー
answer CHANGED
@@ -3,12 +3,18 @@
3
3
  for i = 4 To Cells(Rows.Count. 1).End(xlUp).Row
4
4
  for i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
5
5
 
6
+ 'Rangeの)が足りていない
7
+ Range(Cells(i, 3), Cells(i, 7).Interior.Color = RGB(255,0,0)
8
+ Range(Cells(i, 3), Cells(i, 7)).Interior.Color = RGB(255, 0, 0)
9
+
6
10
  '指定は基本的に"(ダブルクォーテーション)で囲む
7
11
  'mycellには配列が入っているので配列箇所を指定して中の値を取り出す作業が必要
8
12
  '?箇所の指定は日付の終了日時を指定のため正しい値を要指定
9
13
  If 30 <= DateDiff('d, mycell, Date) And mycell <> '' Then
10
- If 30 <= DateDiff("d", mycell(i,j), ?) And mycell(i,j) <> "" Then
14
+ If 30 <= DateDiff("d", mycell, ?) And mycell <> "" Then
11
15
  ```
16
+
17
+
12
18
  [Cells](https://excel-ubara.com/excelvba1/EXCELVBA311.html)
13
19
  > VBAで位置を変化させるような1つのセルを指定する場合の書き方の基本は、
14
20
  Cells(行, 列)
@@ -18,4 +24,6 @@
18
24
  サンプルデータでは?の箇所は推測不可能です。
19
25
  [DataDiff関数構文](https://officek.net/access/a-function/al-date/datediff/)
20
26
  > DateDiff(単位, 日時1, 日時2, 週の開始曜日, 年の第1週)
21
- 2つの日時の間隔を返します。間隔とは日時1と日時2の間に指定した単位の「カウントの基準」(表A 参照)が何回あるかを表す数です。日時1と「カウントの基準」が一致する場合、日時1はカウントの対象になりません。
27
+ 2つの日時の間隔を返します。間隔とは日時1と日時2の間に指定した単位の「カウントの基準」(表A 参照)が何回あるかを表す数です。日時1と「カウントの基準」が一致する場合、日時1はカウントの対象になりません。
28
+
29
+ 基本的な構文の記入ミスですが、手打ちだと思うので最初は慣れるまでRange()と書いてから中にCells()と書くようにすれば徐々にミスをなくせます。