ExcelVBAの挑戦状にチャレンジ①
こんにちは!
パソコンインストラクター歴12年の
チサです。(*´∀`)
今日は
ExcelVBAの挑戦状に
チャレンジ🔥
したので
そのことを書きますね!
(о´∀`о)
きっかけは
こちらのポスト👇
ゅぇさんからの
ExcelVBAを書く人向けの
練習問題‼️
(っ ॑꒳ ॑c)ゎ‹ゎ‹
どんなことをするのかというと…
この『元データ』シートを👇
『ワードリスト』シートを元に…👇
こんな感じに編集するVBA👇
お題は
大きく4つに分かれています!
このお題!
やってみたらわかるんですが
これ!けっこうむずくて💦
:( ;´꒳`;):ヒエッ
全部一気にやるのはしんどいので
ちょっとづつ完成させようかと思います!
今日は①のところをやってみました!
★完成前★
☆完成後☆
一番の問題は
表記ゆれの部分!
普段、仕事でちょこちょこVBAは書くものの…
ここまできっちり
入力文字をチェックするものは
作ったことなくて💦🤔
検索文字とセル内の文字を
どうにかして⁉️
合わせる必要があるんだろうな?
とは思ったものの
よくわからず困ってましたw
そしたらりゅうりゅう🐉さんから
助け船が!
こんな風に書いたら
どっちの文字も同じように揃えられるんだ!
(∗︎°⌓︎°∗︎)
教えていただき
ありがとうございました😊
わたしには考えつかない書き方で
おどろきでした!
で!
さっそく!
この書き方を参考に
書いたコードがコチラ👇
Sub mondai1()
'[ワードリスト]シートにある表を元に『対象ワード』を赤字太字にする
'※半角全角、大文字小文字が異なる場合も、同じワードとして判定
'例)
'「Excel VBA」「Excel vba」なども「Excel VBA」として扱う
'対象外例)
'「ExcelVBA」←スペースなし
Dim wFm As Worksheet
Set wFm = Worksheets("ワードリスト")
Dim cFm As Long
Dim wTo As Worksheet
Set wTo = Worksheets("元データ")
Dim cTo As Long
Dim word As String
Dim st As String
Dim c_word As Long
Dim c_haji As Long
For cTo = 2 To 9
For cFm = 2 To 7
'検索文字を統一する
'半角変換(vbNarrow)大文字変換(vbUpperCase)
word = StrConv(wFm.Range("A" & cFm).Value, vbNarrow + vbUpperCase)
st = StrConv(wTo.Range("B" & cTo).Value, vbNarrow + vbUpperCase)
'対象ワードの文字数
c_word = Len(word)
If InStr(st, word) > 0 Then
c_haji = InStr(st, word) '対象ワードが左から何文字目の位置にあるか?
wTo.Range("B" & cTo).Characters(c_haji, c_word).Font.Color = vbRed
wTo.Range("B" & cTo).Characters(c_haji, c_word).Font.Bold = True
End If
Next
Next
End Sub
コレを実行すると…
👇
とりあえず!
①ができました!
今度また近いうちに
続きをやろうと思います🔥
(たぶん🤭)
ではでは
またあした!
(´꒳`)/
2023年1月22日⛄
新刊、販売しました!
事務仕事でよくあるExcelのめんどい仕事を
パパっと解決しちゃえる本👇
きっと周りのみんなが
びっくりしちゃいますよ♪
エクセルの関数を特訓したい方は
こちらにもぜひチャレンジ🔥
紙の📕もご用意してます♪
Amazonで絶賛✨販売中
➊パソコンに関する📕 7冊
➋Kindle出版に関する📕 2冊
➌節約に関する📕 1冊
➍読書に関する📕 1冊
➎海外の方向けの📕 3冊
気になる本があれば
試し読みだけでも♪
(´▽`)
この記事が気に入ったらサポートをしてみませんか?