Gizport
1 回答
0
Share (facebook)
245
view
全般

VBAでお聞きしたいのですがお願いします。 前回の似たような質問しま...

VBAでお聞きしたいのですがお願いします。 前回の似たような質問しましたが、ご了承ください。

下記のVBAコードで間違っている所教えて下さい。
内容ですが検索した値と一致し指定した箇所に色を付けたいのですが、
関数のVLOOKUPの様に検索は出来るのですが、
For i To~Next i と For h To~Next hが変な感じがします。
それと・・・If ~ End Ifの判定した時の使い方は、
これで良いんでしょうか?ご回答お願いします。

Private Sub CommandButton2_Click()
Dim OpenFileName As String
Dim Od1 As Worksheet
Dim Od1Row As Long
Dim Od1Det As String
Dim Sh1 As Worksheet
Dim Sh1Row As Long
Dim Sh1Det As String
Dim i As Long
Dim h As Long

OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")
If OpenFileName <> "False" Then
Workbooks.Open OpenFileName
Else
MsgBox "キャンセルされました"
End If

'シート設定
Set Sh1 = ActiveWorkbook.Sheets("Sheet1")
Set Od1 = ThisWorkbook.Sheets("Sheet2")

'最終行の設定
Sh1Row = Sh1.Cells(Rows.Count, 1).End(xlUp).Row
Od1Row = Od1.Cells(Rows.Count, 1).End(xlUp).Row

For i = 0 To Sh1Row - 1
'検索値設定
Sh1Det = Sh1.Range("C3").Offset(i).Value
For h = 0 To Od1Row - 1
Od1Det = Od1.Range("B2").Offset(h).Value
'データ判定
If Left(Sh1Det, 10) = Left(Od1Det, 10) Then
With Sh1.Range("H3:I3").Offset(i)
.Interior.ColorIndex = 15
End With
End If
Next h
Next i
End Sub
Yahoo!知恵袋 3903日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
こんにちわ。
なるほど、
「Offsetを使うことに違和感がある。もっとシンプルに出来るのではないか。」
ということですね。
ご想像の通り、コードの書き方にはいくつかのやり方があります。
このような方法のほうが腑に落ちるのではないでしょうか。
うまくいくといいですね。
(手元にサンプルがないためデバッグしておりませんがご容赦ください。)

For i = 3 To Sh1Row
'検索値設定
Sh1Det = Sh1.Cells(i, "C").Value
For h = 2 To Od1Row
Od1Det = Od1.Cells(h, "B").Value
'データ判定
If Left(Sh1Det, 10) = Left(Od1Det, 10) Then
Sh1.Cells(i, "H").Interior.ColorIndex = 15
Sh1.Cells(i, "I").Interior.ColorIndex = 15
'あるいは
Sh1.Range(Sh1.Cells(i, "H"), Sh1.Cells(i, "I")).Interior.ColorIndex = 15
End If
Next h
Next i

補足:
補足の内容は新しい質問のようですが、こちらのプログラムが参考になるかと思います。
どうしてもお困りでしたらご連絡いただければと思います。
それでは。

Sub Test()
Dim ShX As Worksheet
For Each ShX In ActiveWorkbook.Sheets
ShX.Select
Range("A1") = Time
Next ShX
End Sub
Yahoo!知恵袋 3902日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
44
Views
質問者が納得こんにちわ。 なるほど、 「Offsetを使うことに違和感がある。もっとシンプルに出来るのではないか。」 ということですね。 ご想像の通り、コードの書き方にはいくつかのやり方があります。 このような方法のほうが腑に落ちるのではないでしょうか。 うまくいくといいですね。 (手元にサンプルがないためデバッグしておりませんがご容赦ください。) For i = 3 To Sh1Row '検索値設定 Sh1Det = Sh1.Cells(i, "C").Value For h = 2 To...
3903日前view44
全般
49
Views
質問者が納得adb shell とコマンドを送ってやると 通常shell@android:/ $ と表示される所、shell@android:/ # と表示されればroot権限がとれてます。 そのあとはsuperuserのサイトあたりからsuバイナリを落として shell@android:/ # mount -o rw,remount /system /system shell@android:/ # dd if=/data/local/tmp/su of=/system/bin/su shell@android:/...
4098日前view49
全般
53
Views
質問者が納得機種選びの参考に http://www.nttdocomo.co.jp/product/search/detail/index.html スマートフォンのシムカードは別物です。使いやすいかどうかは人により違うので店頭の実機を触って自分で確認するのが良いでしょう。
4433日前view53
全般
61
Views
質問者が納得若干制約も有りますが・・・ 携帯をXi対応のスマホに機種変してみてはどうでしょうか? SH-10Bの方は、Xi端末のテザリング接続を使い、パケット0で 運用できます。(SH-10Bの月々サポートの条件が分かりませんが・・・) ちなみに、テザリング使用を前提とした場合は、Xiエリアであろうが なかろうが、Xiの方が得です。 3G専用のスマホだと、テザリングをすると料金が高くなりますので。 ちなみに、Xiは基本プランが専用のちょっと3Gのプラントは異なる ものなので、その点は注意が必要です。 後、蛇...
4614日前view61
全般
126
Views
質問者が納得BB9ならできるはずですよ。 ただ、使えない機能(カメラ&ビデオ/FMトランスミッターなど)が あったりするので実用的にどうなのか考える必要があるかと… 元々のDonutはそのままに、リカバリー領域にFroyoを 入れてしまうことでデュアルブートを実現しているので、 万が一の時にリカバリーが使えないという危険が伴いますので、 それなりの覚悟を持って臨む必要があると思います。 =追記= ↓こちらのサイトを参考にされると、PCなしでもデュアルブート化できるっぽいです。 もちろん万一の...
4622日前view126

取扱説明書・マニュアル

1147view
http://www.nttdocomo.co.jp/.../SH-10B_J_All.pdf
322 ページ14.99 MB
もっと見る

関連製品のQ&A