[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA 大文字』(飴ちゃん)
こんにちは
For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row For j = 1 To Wsb.Cells(Wsb.Rows.Count, 1).End(xlUp).Row If .UCase(Cells(i, 8)) = Wsb.UCase(Cells(j, 1)) Then .Cells(i, 15) = Date .Range(Cells(i, 1), Cells(i, 15)).Interior.ColorIndex =45 End If Next Next
宜しくお願い致します。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
(γ) 2020/03/10(火) 17:51
UCaseにはピリオドが要らないのと、逆に引数指定しているCells(何箇所かあり)にはピリオドが必要なのでは?
(???) 2020/03/10(火) 18:08
If UCase(Cells(i, 8)) = Wsb.UCase(Cells(j, 1)) Then
これでよいのでしょうか?
(飴ちゃん) 2020/03/10(火) 19:32
Wsbはワークシートを表す変数ですか?
ワークシートオブジェクトのメソッドなら、そういう書き方になりますが、
UCaseはワークシートとは関係なく、VBAにもともとある関数です。
したがって、それはアウト。
単に UCaseだけでいい。(左辺と同じ使い方でよい)
むしろ、
Cells(i, 8)やCells(j, 1)にワークシート指定が必要じゃないですか?
(γ) 2020/03/10(火) 19:40
If UCase(.Cells(i, 8)) = UCase(Wsb.Cells(j, 1)) Then
ではないですか?
余談です。
VBAで使える道具には色々な種類のものがあります。
VBAは、
(1)VB6(Basic言語)というプログラム言語 に、
(2)Excelをコントロールするために導入されたオブジェクト指向的仕組み
を加えたものです。
(3)さらに、(2)の中には、WorksheetFunctionオブジェクトのメソッドとして、
ワークシート関数(全てではありませんが)が利用できるようにされています。
大きく分けて、これらの3つの種類があると考えてよいと思います。
今回のUCaseは、上記の(1)に含まれるものです。一番古い地層に属するものですね。
どんな種類のものがあるかというと、それは、ヘルプに書かれています。
VBAのヘルプの「Visual Basic ランゲージレファレンス」の中に
「関数」という分類があり、ここに纏められていますので、
こんな関数があるのかと、ざっと見ておくとよいでしょう。
(γ) 2020/03/10(火) 21:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.