![見出し画像](https://assets.st-note.com/production/uploads/images/146168887/rectangle_large_type_2_2fd77eeab716f3518f9c69e884991ef6.png?width=1200)
【Day55】文系オタクのエンジニア道~問題演習⑧-2~
こんにちは
安田です
なんだか急に暑くなりましたよね
スマートウォッチの気温だと
32℃!!
いや、夏ですやん
この前、雨がー#梅雨がー
って記事をアップしたのが
嘘のように・・・
まだ暑さに慣れていないですが
粛々と#VBAの学習も進めます
大文字、小文字に変える
![](https://assets.st-note.com/img/1720072534290-W9zlc8upp0.png)
パターン① LCase(文字列)
Sub test1()
Dim i As Long
For i = 1 To 3
Cells(i, 2) = LCase(Cells(i, 1))
Next i
End Sub
パターン② StrConv(文字列, vbLowerCase)
Sub test2()
Dim i As Long
For i = 1 To 3
Cells(i, 2) = StrConv(Cells(i, 1), vbLowerCase)
Next i
End Sub
文字列のスペースを削除するTrim関数ほか
Trim関数
引数に指定した文字列の両端にあるスペースを削除する
LTrim関数
引数に指定した文字列の左端にあるスペースのみを削除する
RTrim関数
引数に指定した文字列の右端にあるスペースのみを削除する
Replace関数
引数に指定した文字列を置換する
文字列を検索して文字の位置を指定するInStr関数
問
A列に入力されている文字列に「a」の文字がある場合
対象の文字列がB列に表示したい
![](https://assets.st-note.com/img/1720073584276-TNAleZ5qXQ.png?width=1200)
回答コード
Sub Test3()
Dim i As Long, j As Long
j = 1
For i = 1 To 6
If InStr(Cells(i, 1), "a") > 0 Then
Cells(i, 1).Copy Cells(j, 2)
j = j + 1
End If
Next i
End Sub
InStr関数
引数に指定した文字列において
指定した文字列を先頭から検索して
最初に見つかった文字の位置を取得する
A列に「a」がある場合「1」を返す
→A1・A4・A5が該当する
それ以外のセルは「a」がないため「0」が返ってくる
「1」のものをB列に表示する
StrConv関数の使い方
コードから
出力結果を回答する
![](https://assets.st-note.com/img/1720074053614-llSH3Nnqqn.png)
Sub Test1()
Dim A As Variant
A = Trim(Range("A1"))
A = Mid(A, InStr(A, "c") + 1, 3)
MsgBox A
End Sub
まず、Trim関数で「abcdefghijk」の両端のスペースを削除し、「abcdefghijk」を変数Aに格納します。
次に、InStr関数で変数Aに格納されている「abcdefghijk」より、「c」の位置「3」を取得します。
そして、Mid関数で変数Aに格納されている「abcdefghijk」より、「3+1」で4番目の位置「d」から3文字「def」を取得します。
![](https://assets.st-note.com/img/1720074095311-UaOAo2INb2.png)
StrConv(文字列, 文字の種類)
文字の種類
「vbWide」
半角の「アルファベット」「記号」「数値」を全角に変換する
「vbNarrow」
全角の「アルファベット」「記号」「数値」を半角に変換する
「vbLowerCase」
文字列にある大文字を小文字に変換する
「vbUpperCase」
文字列にある小文字を大文字に変換する
まとめ
正答率 42%
7問中3問正解
文字の種類は中々に豊富でした
暑くなってきましたので
水分補給をしっかりと!
「VBAマスターに俺はなる」
最後まで読んでいただき
ありがとうございます
安田
マガジンにまとめてありますので
よかったらそちらも御覧ください
#66日ライラン
ライラン 9日目
この記事が気に入ったらサポートをしてみませんか?