Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


637 / 13645 ツリー ←次へ | 前へ→

【79299】オブジェクトエラーの理由 oshiete 17/7/6(木) 15:54 質問[未読]
【79300】Re:オブジェクトエラーの理由 カリーニン 17/7/6(木) 16:28 発言[未読]
【79304】Re:オブジェクトエラーの理由 oshiete 17/7/7(金) 10:26 回答[未読]
【79320】Re:オブジェクトエラーの理由 oshiete 17/7/10(月) 12:58 お礼[未読]
【79301】Re:オブジェクトエラーの理由 カリーニン 17/7/6(木) 16:35 発言[未読]
【79305】Re:オブジェクトエラーの理由 oshiete 17/7/7(金) 10:27 回答[未読]
【79309】Re:オブジェクトエラーの理由 カリーニン 17/7/7(金) 22:02 発言[未読]
【79318】Re:オブジェクトエラーの理由 oshiete 17/7/10(月) 9:39 回答[未読]
【79319】Re:オブジェクトエラーの理由 カリーニン 17/7/10(月) 10:26 発言[未読]
【79310】Re:オブジェクトエラーの理由 カリーニン 17/7/7(金) 22:08 発言[未読]
【79302】Re:オブジェクトエラーの理由 カリーニン 17/7/6(木) 16:38 発言[未読]
【79306】Re:オブジェクトエラーの理由 oshiete 17/7/7(金) 11:52 回答[未読]
【79311】Re:オブジェクトエラーの理由 γ 17/7/8(土) 7:37 発言[未読]
【79317】Re:オブジェクトエラーの理由 γ 17/7/9(日) 6:43 発言[未読]
【79321】Re:オブジェクトエラーの理由 oshiete 17/7/10(月) 13:00 お礼[未読]
【79322】Re:オブジェクトエラーの理由 γ 17/7/10(月) 21:07 質問[未読]

【79299】オブジェクトエラーの理由
質問  oshiete  - 17/7/6(木) 15:54 -

引用なし
パスワード
   お願いします(m´・ω・`)m

Sub apple()

Dim i As Long

For i = 1 To Cells(1, 1).End(xlDown)

If Cells(2, i).Value = Cells(2, i + 1).Value Then
Cells(3, i)(3, i + 1).Interior.ColorIndex = 3


End If

Next i

End Sub

【79300】Re:オブジェクトエラーの理由
発言  カリーニン  - 17/7/6(木) 16:28 -

引用なし
パスワード
   質問は省略しないできちんと書きましょうね。

↓じゃないですか?

>Cells(3, i)(3, i + 1).Interior.ColorIndex = 3

Cells(Cells(3, i),Cells(3, i + 1)).Interior.ColorIndex = 3

もっとも、これもシートをきちんと指定した方がいいですね。

たとえば、アクティブシートの場合

ActiveSheet.Cells(ActiveSheet.Cells(3, i),ActiveSheet.Cells(3, i + 1)).Interior.ColorIndex = 3

【79301】Re:オブジェクトエラーの理由
発言  カリーニン  - 17/7/6(木) 16:35 -

引用なし
パスワード
   >For i = 1 To Cells(1, 1).End(xlDown)
ループの変数iは行方向のようですが、

>If Cells(2, i).Value = Cells(2, i + 1).Value Then

こちらは変数iは列番号として使われてますが、これはいいのですか?

【79302】Re:オブジェクトエラーの理由
発言  カリーニン  - 17/7/6(木) 16:38 -

引用なし
パスワード
   コード内容の説明がないですが、マクロを使うまでもなく条件付き書式
でいける案件のような気もします。

【79304】Re:オブジェクトエラーの理由
回答  oshiete  - 17/7/7(金) 10:26 -

引用なし
パスワード
   ▼カリーニン さん:

ありがとうございます。
変更してみたのですが、できませんでした


>質問は省略しないできちんと書きましょうね。
>
>↓じゃないですか?
>
>>Cells(3, i)(3, i + 1).Interior.ColorIndex = 3
>
>Cells(Cells(3, i),Cells(3, i + 1)).Interior.ColorIndex = 3
>
>もっとも、これもシートをきちんと指定した方がいいですね。
>
>たとえば、アクティブシートの場合
>
>ActiveSheet.Cells(ActiveSheet.Cells(3, i),ActiveSheet.Cells(3, i + 1)).Interior.ColorIndex = 3

【79305】Re:オブジェクトエラーの理由
回答  oshiete  - 17/7/7(金) 10:27 -

引用なし
パスワード
   ▼カリーニン さん:


>>For i = 1 To Cells(1, 1).End(xlDown) ←これ列方向であってますよね?
>ループの変数iは行方向のようですが、

>
>>If Cells(2, i).Value = Cells(2, i + 1).Value Then
>
>こちらは変数iは列番号として使われてますが、これはいいのですか?

【79306】Re:オブジェクトエラーの理由
回答  oshiete  - 17/7/7(金) 11:52 -

引用なし
パスワード
   ▼カリーニン さん:
>コード内容の説明がないですが、マクロを使うまでもなく条件付き書式
>でいける案件のような気もします。

このあと下にスペース入れたいと思ってます。

【79309】Re:オブジェクトエラーの理由
発言  カリーニン  - 17/7/7(金) 22:02 -

引用なし
パスワード
   >>>For i = 1 To Cells(1, 1).End(xlDown) ←これ列方向であってますよね?

行方向ですが・・・。

【79310】Re:オブジェクトエラーの理由
発言  カリーニン  - 17/7/7(金) 22:08 -

引用なし
パスワード
   参考HPです。

ht tp://www.niji.or.jp/home/toru/notes/8.html

【79311】Re:オブジェクトエラーの理由
発言  γ  - 17/7/8(土) 7:37 -

引用なし
パスワード
   基本的なことをもう一度確認してください。
Cells(行、列)です。
相手が人間なら忖度してくれるかもしれないが、
機械は融通がきかないが、言われたことをキチンとやってくれる。
間違った指示を出せば、間違ったようにやってくれる。

Range(Cells(i,3),Cells(i+1,3)) とか、
Cells(i,3).Resize(2) とかではないですか?

追加事項もあるようですが、
まず、ご自分でやりたいことをきちんと日本語で説明して下さい。

他人に説明する過程で、自分の間違いに気づくことができます。
そこを端折るから、普通なら気づくことに気づかないことがあります。

【79317】Re:オブジェクトエラーの理由
発言  γ  - 17/7/9(日) 6:43 -

引用なし
パスワード
   1. 行と列の取り違え。
2.For i = 1 To Cells(1, 1).End(xlDown).Row
  と行番号をループさせたいのではないか。
3. Cells(3, i)(3, i + 1) は意図と異なるものでしょう。
  Cells(3, i)(3, i + 1)は、Cells(3, i)を起点として、
  そこから(3, i + 1)の単独セルを参照するものです。
 
  セル範囲の指定方法は基本中の基本です。
  ただし、色々な方法がありますから慣れが必要です。
  基本テキストや、
  ht tp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_cell.html
  のようなサイトを参照して下さい。

思いつきで自己流のコードを書く前に、基本テキストを参照しながら、
それをまねてやっていく段階のようにお見受けします。
ステップを踏んでやっていくことは誰にも必要なことです。
頑張って下さい。 

【79318】Re:オブジェクトエラーの理由
回答  oshiete  - 17/7/10(月) 9:39 -

引用なし
パスワード
   ▼カリーニン さん:
>>>>For i = 1 To Cells(1, 1).End(xlDown) ←これ列方向であってますよね?
>
>行方向ですが・・・。


>もで行指定の.row つけてないと列になりますよね??

【79319】Re:オブジェクトエラーの理由
発言  カリーニン  - 17/7/10(月) 10:26 -

引用なし
パスワード
   > >もで行指定の.row つけてないと列になりますよね??

意味不明です。

> Cells(1, 1).End(xlDown)

これの意味は分かってますか?ヘルプ等で調べてみましたか?

γさんのレスは見られましたか?

【79320】Re:オブジェクトエラーの理由
お礼  oshiete  - 17/7/10(月) 12:58 -

引用なし
パスワード
   ▼カリーニン さん:

わかりました。
ありがとうございます。
行と列の定義を勘違いしてました。
下記のように書き換えたらできました↓↓↓

Sub test()

 Dim i As Long
 For i = 1 To Cells(1, 1).End(xlDown)

  If Cells(i, 2).Value = Cells(i + 1, 2).Value Then
  Range(Cells(i, 2), Cells(i + 1, 2)).Interior.ColorIndex = 3

  End If

 Next i

End Sub

【79321】Re:オブジェクトエラーの理由
お礼  oshiete  - 17/7/10(月) 13:00 -

引用なし
パスワード
   ▼γ さん:

すいません、自分が行と列を反対で覚えてました。
下記のように記載したら出来ました。

Sub test()


Dim i As Long

For i = 1 To Cells(1, 1).End(xlDown)

If Cells(i, 2).Value = Cells(i + 1, 2).Value Then
Range(Cells(i, 2), Cells(i + 1, 2)).Interior.ColorIndex = 3


End If

Next i

End Sub

【79322】Re:オブジェクトエラーの理由
質問  γ  - 17/7/10(月) 21:07 -

引用なし
パスワード
   ちょっとお聞きしますが、
そのコードは、何から何までを繰り返しているのですか?
説明してもらえますか?

# エラーが出ないということと、
# 目的が達せられていることは、
# 同じとは限りませんよ。

637 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free