2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

ExcelVBAマスターきてくれ俺に力を貸してくれ

1 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:28:13.589 ID:zXQDnA+A0.net
以下不明点を答えよ
1なぜ変数を初期化するのか?
2なぜNextjでjだけループが終わるのか?
3If Hantei Then もしも変数の場合は。。。 もはや意味がわからない
答えよ

Sub CorrectCode()
Dim i As Long
Dim j As Long
Dim Hantei As Boolean

'変数の値を初期化する
Hantei = False

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To Cells(Rows.Count, 3).End(xlUp).Row
If Cells(i, 1) = Cells(j, 3) Then
'変数に"True"を代入する
Hantei = True
Exit For
End If
Next j

If Hantei Then
'変数の値を"False"に戻す
Hantei = False
Else
'セルの背景色を変える(チェックする)
Cells(i, 1).Interior.ColorIndex = 6
End If
Next i
End Sub

2 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:29:39.201 ID:gtcJxybE0.net
頼む誰か

3 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:30:43.854 ID:gtcJxybE0.net
誰か来てくれ

4 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:31:59.990 ID:AubZM2qT0.net
答えてやりたいが質問の意味がわからない

5 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:34:47.196 ID:gtcJxybE0.net
Sub CorrectCode()
Dim i As Long
Dim j As Long
Dim Hantei As Boolean

'変数の値を初期化する→なんで初期化するの?
Hantei = False

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To Cells(Rows.Count, 3).End(xlUp).Row
If Cells(i, 1) = Cells(j, 3) Then
'変数に"True"を代入する
Hantei = True
Exit For
End If
Next j→なんで変数jだけループ辞めんの?

If Hantei Then→なんでイコールの形になってないの?初期値はFALSEじゃないの?
'変数の値を"False"に戻す
Hantei = False
Else
'セルの背景色を変える(チェックする)
Cells(i, 1).Interior.ColorIndex = 6
End If
Next i
End Sub

6 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:35:37.764 ID:gtcJxybE0.net
Next jは上のif文が適用されてもされなくてもループ辞めるんだよな?

7 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:37:22.303 ID:AubZM2qT0.net
1 初期化
初期化しないとデフォルトの値が入るから何が入るか詳しくないとわからん

2 next
ループやめてないぞ
ループ抜けてるのは上のexit for

3 =は省略されてるだけ

8 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:38:43.485 ID:gtcJxybE0.net
>>7
デフォルトの値ってなに?

9 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:39:18.359 ID:AubZM2qT0.net
>>8
プログラムによって違う

nextはループを続けるって意味な

10 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:39:32.785 ID:gtcJxybE0.net
>>7
じゃあnextってなに?
イコールないなら初期値のFALSEが入るんじゃないの?

11 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:40:48.130 ID:AubZM2qT0.net
>>10
省略したら1かtrueと比較する
if hentai = true
と同義

12 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:41:17.379 ID:FrhcZJdu0.net
初心者がvbaなんてめんどくせーもんやらないほうがいいと思うけどな
まともな言語やった方がいい

13 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:41:45.855 ID:gtcJxybE0.net
>>9
簡単に日本語訳して

14 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:42:45.323 ID:AubZM2qT0.net
>>13
何を?
まずはお前がまともな日本語を使ってくれ

15 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:42:45.722 ID:gtcJxybE0.net
>>11
なるほどな
初期値になにが入っていようと1になるわけか

nextjが中間にあって
nextiが後ろにある意味がわからない

16 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:43:55.054 ID:DQwcEq0Xd.net
for使うな
doでやれ

17 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:44:39.159 ID:+K5WBuwFa.net
まず>>1はそれが何をするプログラムか分かってるのか

18 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:45:01.061 ID:AubZM2qT0.net
>>15
比較対象、=の右辺の話な
初期化の話は今関係ない

プログラムの実行順に上から見てみろ
next jはfor jの次の行に戻るんだぞ

19 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:50:28.435 ID:gtcJxybE0.net
>>18
jのループが全部終わったらどうなんの?

20 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:51:01.160 ID:AubZM2qT0.net
>>19
全部終わる前に抜けるだろ

まずはググれよ

21 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:53:00.578 ID:gtcJxybE0.net
>>20
抜けない場合もあるよ?
このプログラムはa列にあってc列にないもの探すんだ

急ぎこのプログラムを日本語化してくれ

22 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:53:44.649 ID:AubZM2qT0.net
>>21
そこまでわかってるなら日本語化いらんだろ

23 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:54:54.883 ID:gtcJxybE0.net
>>22
いや、それしかわかってない
たのむ

24 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:56:30.790 ID:AubZM2qT0.net
>>23
嫌だ めんどい
仮にここで翻訳してもらったとしてもお前は一生VBA使えるようにならんぞ

25 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:56:52.116 ID:gtcJxybE0.net
プログラムかけるやつってすげえわ
かっこいいわ
プログラマーなりたいな
今は営業マンだけど

26 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:57:12.546 ID:gtcJxybE0.net
>>24
あとすこしでわかりそうなんだ

27 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 14:58:08.620 ID:AubZM2qT0.net
>>26
じゃああと少し頑張ってね

28 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:03:51.258 ID:zXQDnA+A0.net
俺なりに日本語訳してみた
間違っていたら教えてくれ
VBA初めて3日です


変数宣言

変数に初期値を入れる わかりやすいように

変数iは2から一番下からみて最初に値の入ってセルまでをループする
変数jも同様
もしもA列とC列にループする上で同じのが見つかったら
変数にTUREを入れる
そしてループを抜ける
そんでまたjのループを繰り返す
もしも変数がTUREをもっていたら
FALSEに変える → なぜ?
セルの色を変える
そんでiのループを繰り返す

29 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:08:22.805 ID:zXQDnA+A0.net
教えてくれ

30 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:08:39.559 ID:FZ8eIvwMd.net
for i = 1 To 10
  for j = 1 To 20
   [処理1]
  Next j
  [処理2]
Next i

この場合、iが2から10に変わるまで
「jが2から20に変わるまで処理1が繰り返されて、それが終わると処理2が実行される」
という処理が繰り返される

31 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:08:59.188 ID:AubZM2qT0.net
>>28
下から見てじゃない
2から順に塊の一番下まで見る

falseに戻さなかったらずっとtrueだがいいのか?

32 :30:2017/12/01(金) 15:10:04.722 ID:FZ8eIvwMd.net
中途半端に書き換えて間違えた
正しくは

iが1から10に変わるまで
「jが1から20に変わるまで処理1が繰り返されて、それが終わると処理2が実行される」
という処理が繰り返される

33 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:11:13.044 ID:AubZM2qT0.net
>>32
VBAのforはCとかと少し違う
逐次実行

34 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:12:16.653 ID:M9Qbq+IMd.net
学校の課題かなんかか?

35 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:17:13.134 ID:zXQDnA+A0.net
>>32
つまり
iが a1でjが b2ならば
a1 b2.3.4.5
a2 b2 3 4 5
と増えるんだね

で、処理2っでなにをするんだい?

36 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:18:01.622 ID:AubZM2qT0.net
>>32
ってかお前ループのネスト理解してないだろ

37 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:18:32.423 ID:zXQDnA+A0.net
このプログラムは
nextjのあとにすぐnextiがきてもいいのでは?
処理1で全てのセルをみてるんだろ?

38 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:21:40.314 ID:zXQDnA+A0.net
VBAって面白いけど奥が深いな

39 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:21:50.992 ID:AubZM2qT0.net
>>37
1,2と同じセルを全てのC列について探す
2,2と同じ(ry

40 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:22:42.340 ID:AubZM2qT0.net
奥が深いどころかプログラミングの初歩の初歩で片足すら突っ込んでねえよ

41 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:23:46.550 ID:zXQDnA+A0.net
>>39
略すな

42 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:24:16.536 ID:zXQDnA+A0.net
楽しいなVBA
初めてハローワールド出た時は感動もんだわ

43 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:24:47.693 ID:NiMlAtNF0.net
教えてもらってる立場でありながら命令するとはやりおる

44 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:27:03.895 ID:AubZM2qT0.net
>>41
以下同文だよ

A列のセルと全てのC列を比べてるのがjのループ
A列のセルをすべて処理するのがiのループ

該当するセルの処理が背景色を変えるだけなら
塗りつぶしの処理をループ内に持ってくればお前の言ってることは可能

45 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:31:10.544 ID:M9Qbq+IMd.net
日本語化したってこいつには理解でないだろうな

46 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:32:45.715 ID:zXQDnA+A0.net
>>45
ちな
mos エクセルエキスパート

47 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:38:55.287 ID:gb5dm5ma0.net
-1

48 :以下、?ちゃんねるからVIPがお送りします:2017/12/01(金) 15:47:29.894 ID:M9Qbq+IMd.net
じゃあ無理だわ

総レス数 48
13 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★